[PATCH 29/29] nfsd: only allow filesystems that set EXPORT_OP_STABLE_HANDLES

Jeff Layton
2026-01-15T17:51:14Z

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 <jlayton@kernel.org>
---
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