]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
nfsd: always release slot when requeueing callback
authorJeff Layton <jlayton@kernel.org>
Sun, 9 Feb 2025 12:31:24 +0000 (07:31 -0500)
committerChuck Lever <chuck.lever@oracle.com>
Mon, 10 Mar 2025 13:11:02 +0000 (09:11 -0400)
If the callback is going to be requeued to the workqueue, then release
the slot. The callback client and session could change and the slot may
no longer be valid after that point.

Signed-off-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfs4callback.c

index 5eabba4cc6c5ef1750518000c177ebee5923c221..640d788052fd08db88fcce740b89b1d0710c6786 100644 (file)
@@ -1405,6 +1405,7 @@ retry_nowait:
        rpc_restart_call_prepare(task);
        goto out;
 requeue:
+       nfsd41_cb_release_slot(cb);
        nfsd4_requeue_cb(task, cb);
        return false;
 }