]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
NFSv4: Fix a deadlock between nfs4_open_recover_helper() and delegreturn
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Fri, 4 Nov 2022 17:20:01 +0000 (13:20 -0400)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Mon, 28 Nov 2022 03:09:59 +0000 (22:09 -0500)
commit51069e4aef6257b0454057359faed0ab0c9af083
tree46449a53c31fb2f67cc5b3cf9cc7013af62c3223
parente83458fce080dc23c25353a1af90bfecf79c7369
NFSv4: Fix a deadlock between nfs4_open_recover_helper() and delegreturn

If we're asked to recover open state while a delegation return is
outstanding, then the state manager thread cannot use a cached open, so
if the server returns a delegation, we can end up deadlocked behind the
pending delegreturn.
To avoid this problem, let's just ask the server not to give us a
delegation unless we're explicitly reclaiming one.

Fixes: be36e185bd26 ("NFSv4: nfs4_open_recover_helper() must set share access")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
fs/nfs/nfs4proc.c