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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.