Re: [PATCH v2 10/11] nfsd: allow DELEGRETURN on directories
Chuck Lever <[email protected]>
| Newsgroups | org.kernel.vger.ecryptfs,dev.linux.lists.netfs,org.kernel.vger.linux-cifs,org.kernel.vger.linux-fsdevel,org.kernel.vger.linux-kernel,org.kernel.vger.linux-nfs,org.kernel.vger.linux-unionfs,org.kernel.vger.linux-xfs,org.kernel.vger.netdev |
|---|---|
| Message-ID | <[email protected]> |
On 10/17/25 7:32 AM, Jeff Layton wrote: > As Trond pointed out: "...provided that the presented stateid is > actually valid, it is also sufficient to uniquely identify the file to > which it is associated (see RFC8881 Section 8.2.4), so the filehandle > should be considered mostly irrelevant for operations like DELEGRETURN." > > Don't ask fh_verify to filter on file type. > > Signed-off-by: Jeff Layton <[email protected]> > --- > fs/nfsd/nfs4state.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c > index c9053ef4d79f074f49ecaf0c7a3db78ec147136e..b06591f154aa372db710e071c69260f4639956d7 100644 > --- a/fs/nfsd/nfs4state.c > +++ b/fs/nfsd/nfs4state.c > @@ -7824,7 +7824,8 @@ nfsd4_delegreturn(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, > __be32 status; > struct nfsd_net *nn = net_generic(SVC_NET(rqstp), nfsd_net_id); > > - if ((status = fh_verify(rqstp, &cstate->current_fh, S_IFREG, 0))) > + status = fh_verify(rqstp, &cstate->current_fh, 0, 0); > + if (status) > return status; > > status = nfsd4_lookup_stateid(cstate, stateid, SC_TYPE_DELEG, SC_STATUS_REVOKED, &s, nn); > Reviewed-by: Chuck Lever <[email protected]> -- Chuck Lever