summaryrefslogtreecommitdiff
path: root/include/linux/sunrpc
diff options
context:
space:
mode:
authorChuck Lever <chuck.lever@oracle.com>2026-03-24 11:18:12 -0400
committerChuck Lever <chuck.lever@oracle.com>2026-06-01 11:08:18 -0400
commit625981c8f3da0cc2d236d7b46c39dd75554b8276 (patch)
tree7ae7e47f8ae4fdbf8ceb5b4135bb8ff14a9d5882 /include/linux/sunrpc
parente7f558158edda53b89b456cc5795807459914f2e (diff)
NFSD: Fix delegation reference leak in nfsd4_revoke_states
When revoking delegation state, nfsd4_revoke_states() takes an extra reference on the stid before calling unhash_delegation_locked(). If unhash_delegation_locked() returns false (the delegation was already unhashed by a concurrent path), dp is set to NULL and revoke_delegation() is skipped, but the extra reference is never released. Each occurrence permanently pins the stid in memory. The leaked reference also prevents nfs4_put_stid() from decrementing cl_admin_revoked, leaving the counter permanently inflated. Drop the extra reference in the failure path. Fixes: 8dd91e8d31fe ("nfsd: fix race between laundromat and free_stateid") Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Diffstat (limited to 'include/linux/sunrpc')
0 files changed, 0 insertions, 0 deletions