On Thu, Jan 15, 2026 at 6:51 PM Jeff Layton <[email protected]> wrote: > > 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); >
IDGI. Don't you want to deny the export of those fs in check_export()? By the same logic that check_export() checks for can_decode_fh() not for can_encode_fh(). Thanks, Amir.
