Some filesystems have grown export operations in order to provide filehandles for local usage. Some of these filesystems are unsuitable for use with nfsd, since their filehandles are not persistent across reboots.
In __fh_verify, check whether EXPORT_OP_STABLE_HANDLES is set and return nfserr_stale if it isn't. Signed-off-by: Jeff Layton <[email protected]> --- fs/nfsd/nfsfh.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fs/nfsd/nfsfh.c b/fs/nfsd/nfsfh.c index ed85dd43da18e6d4c4667ff14dc035f2eacff1d6..da9d5fb2e6613c2707195da2e8678b3fcb3d444d 100644 --- a/fs/nfsd/nfsfh.c +++ b/fs/nfsd/nfsfh.c @@ -334,6 +334,10 @@ __fh_verify(struct svc_rqst *rqstp, dentry = fhp->fh_dentry; exp = fhp->fh_export; + error = nfserr_stale; + if (!(dentry->d_sb->s_export_op->flags & EXPORT_OP_STABLE_HANDLES)) + goto out; + trace_nfsd_fh_verify(rqstp, fhp, type, access); /* -- 2.52.0
