]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
NFSD: Fix infinite loop in layout state revocation
authorChuck Lever <chuck.lever@oracle.com>
Sun, 19 Apr 2026 18:52:59 +0000 (14:52 -0400)
committerChuck Lever <chuck.lever@oracle.com>
Sun, 10 May 2026 16:41:08 +0000 (12:41 -0400)
commit4f8ef58c10bfe5f86a643c7c8331b37e69e3dae1
treeb73d9538ab3ba34864fc7e44c46bc8e46ab11791
parentc00b472a1322d4f5424cd7b6c7d00270eae673bd
NFSD: Fix infinite loop in layout state revocation

find_one_sb_stid() skips stids whose sc_status is non-zero, but the
SC_TYPE_LAYOUT case in nfsd4_revoke_states() never sets sc_status
before calling nfsd4_close_layout(). The retry loop therefore finds
the same layout stid on every iteration, hanging the revoker
indefinitely.

Fixes: 1e33e1414bec ("nfsd: allow layout state to be admin-revoked.")
Reported-by: Dai Ngo <dai.ngo@oracle.com>
Reviewed-by: Jeff Layton <jlayton@kernel.org>
Tested-by: Dai Ngo <dai.ngo@oracle.com>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
fs/nfsd/nfs4state.c