]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
NFSv4: Fix a potential state reclaim deadlock
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Sun, 16 Oct 2022 18:44:31 +0000 (14:44 -0400)
committerAnna Schumaker <Anna.Schumaker@Netapp.com>
Thu, 27 Oct 2022 19:52:10 +0000 (15:52 -0400)
commit1ba04394e028ea8b45d92685cc0d6ab582cf7647
tree06758b37bd44564f98b79814c387f7e44a59b216
parentcf0d7e7f4520814f45e1313872ad5777ed504004
NFSv4: Fix a potential state reclaim deadlock

If the server reboots while we are engaged in a delegation return, and
there is a pNFS layout with return-on-close set, then the current code
can end up deadlocking in pnfs_roc() when nfs_inode_set_delegation()
tries to return the old delegation.
Now that delegreturn actually uses its own copy of the stateid, it
should be safe to just always update the delegation stateid in place.

Fixes: 078000d02d57 ("pNFS: We want return-on-close to complete when evicting the inode")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
fs/nfs/delegation.c