]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
sunrpc: start cache request seqno at 1 to fix netlink GET_REQS
authorJeff Layton <jlayton@kernel.org>
Sat, 11 Apr 2026 21:12:16 +0000 (17:12 -0400)
committerChuck Lever <chuck.lever@oracle.com>
Sun, 10 May 2026 16:41:08 +0000 (12:41 -0400)
commitc00b472a1322d4f5424cd7b6c7d00270eae673bd
treeaf61650f9709b5cf4abc21433b0fe117e5a79a3a
parent4183cf383b6faec17a0882b84cd2d901dba62b16
sunrpc: start cache request seqno at 1 to fix netlink GET_REQS

sunrpc_cache_requests_snapshot() filters requests with
crq->seqno <= min_seqno. The min_seqno for the first netlink
dump call is cb->args[0] which is 0. Since next_seqno was
initialized to 0, the very first cache request got seqno=0
and was silently skipped by the snapshot (0 <= 0 is true).

This caused netlink-based GET_REQS to return 0 pending requests
even when a request was queued, preventing mountd from resolving
cache entries (particularly expkey/nfsd.fh). The unresolved
CACHE_PENDING state blocked all further notifications for the
entry, leading to permanent NFS4ERR_DELAY hangs.

Start next_seqno at 1 so all requests have seqno >= 1 and pass
the snapshot filter when min_seqno is 0.

Fixes: facc4e3c8042 ("sunrpc: split cache_detail queue into request and reader lists")
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
net/sunrpc/cache.c