summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorAnthony Iliopoulos <ailiop@suse.com>2025-12-22 14:30:04 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2026-02-26 15:01:08 -0800
commit8dff54fe88c0dcd4c55bff9fc2fa6ca968290826 (patch)
tree71001481f9696987e422236ba76a8d28200f4bbf /lib
parent931ebd430d8072c3c973b2af554f1082514a22ee (diff)
nfsd: never defer requests during idmap lookup
[ Upstream commit f9c206cdc4266caad6a9a7f46341420a10f03ccb ] During v4 request compound arg decoding, some ops (e.g. SETATTR) can trigger idmap lookup upcalls. When those upcall responses get delayed beyond the allowed time limit, cache_check() will mark the request for deferral and cause it to be dropped. This prevents nfs4svc_encode_compoundres from being executed, and thus the session slot flag NFSD4_SLOT_INUSE never gets cleared. Subsequent client requests will fail with NFSERR_JUKEBOX, given that the slot will be marked as in-use, making the SEQUENCE op fail. Fix this by making sure that the RQ_USEDEFERRAL flag is always clear during nfs4svc_decode_compoundargs(), since no v4 request should ever be deferred. Fixes: 2f425878b6a7 ("nfsd: don't use the deferral service, return NFS4ERR_DELAY") Signed-off-by: Anthony Iliopoulos <ailiop@suse.com> Reviewed-by: NeilBrown <neil@brown.name> Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Sasha Levin <sashal@kernel.org>
Diffstat (limited to 'lib')
0 files changed, 0 insertions, 0 deletions