]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
nfsd: delete unreachable confusing code in nfs4_open_delegation()
authorMatvey Kovalev <matvey.kovalev@ispras.ru>
Mon, 29 Sep 2025 17:35:20 +0000 (20:35 +0300)
committerChuck Lever <chuck.lever@oracle.com>
Sun, 16 Nov 2025 23:20:11 +0000 (18:20 -0500)
op_delegate_type is assigned OPEN_DELEGATE_NONE just before the if-block
where condition specifies it not be equal to OPEN_DELEGATE_NONE. Compiler
treats the block as unreachable and optimizes it out from the resulting
executable.

In that aspect commit d08d32e6e5c0 ("nfsd4: return delegation immediately
if lease fails") notably makes no difference.

Seems it's better to just drop this code instead of fiddling with memory
barriers or atomics.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Signed-off-by: Matvey Kovalev <matvey.kovalev@ispras.ru>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfs4state.c

index af7a20ded1cac166a079bd41cb0413b74c0cbd56..085f5ef12230daff3ac22e33b190620487cb0c22 100644 (file)
@@ -6362,11 +6362,6 @@ nfs4_open_delegation(struct svc_rqst *rqstp, struct nfsd4_open *open,
        return;
 out_no_deleg:
        open->op_delegate_type = OPEN_DELEGATE_NONE;
-       if (open->op_claim_type == NFS4_OPEN_CLAIM_PREVIOUS &&
-           open->op_delegate_type != OPEN_DELEGATE_NONE) {
-               dprintk("NFSD: WARNING: refusing delegation reclaim\n");
-               open->op_recall = true;
-       }
 
        /* 4.1 client asking for a delegation? */
        if (open->op_deleg_want)