From: Chuck Lever Date: Fri, 15 May 2026 15:35:14 +0000 (-0400) Subject: nfsd: Map -ESTALE from case probe to NFS3ERR_STALE X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fbaee2a5c406f274d72ed8f98bf9140ae43c5972;p=thirdparty%2Flinux.git nfsd: Map -ESTALE from case probe to NFS3ERR_STALE The PATHCONF switch in nfsd3_proc_pathconf() recognizes -EOPNOTSUPP (filesystem does not expose case state) and maps -EACCES / -EPERM to nfserr_stale, but lets every other errno fall through to nfserr_serverfault. -ESTALE escapes the same way even though RFC 1813 lists NFS3ERR_STALE as a permitted PATHCONF status, so a probe of an NFS-backed re-export whose parent dentry has been invalidated returns SERVERFAULT and tells the client the server is broken when the handle itself simply went stale. Add an explicit -ESTALE arm that maps to nfserr_stale. Fixes: a8de9c3b40e4 ("nfsd: Report export case-folding via NFSv3 PATHCONF") Reported-by: sashiko-bot Closes: https://sashiko.dev/#/patchset/20260507-case-sensitivity-v14-0-e62cc8200435@oracle.com?part=13 Signed-off-by: Chuck Lever Link: https://patch.msgid.link/20260515153515.362266-7-cel@kernel.org Signed-off-by: Christian Brauner --- diff --git a/fs/nfsd/nfs3proc.c b/fs/nfsd/nfs3proc.c index 12b9172c6be19..aeda7a802bdf7 100644 --- a/fs/nfsd/nfs3proc.c +++ b/fs/nfsd/nfs3proc.c @@ -745,6 +745,9 @@ nfsd3_proc_pathconf(struct svc_rqst *rqstp) */ resp->status = nfserr_stale; break; + case -ESTALE: + resp->status = nfserr_stale; + break; default: resp->status = nfserr_serverfault; break;