NFS: Fix a soft lockup in the delegation recovery code
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Thu, 21 Feb 2019 19:51:25 +0000 (14:51 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 29 Jan 2020 09:24:17 +0000 (10:24 +0100)
commite4a9330d7fd56b32fc87ee5e07073b0c6034df7d
treee6b9a619c50ce2a5a5844d1b2ebf535bbef8e34a
parent020fa8dc3a8ba2616cf4ae699a3e1818d04262fa
NFS: Fix a soft lockup in the delegation recovery code

[ Upstream commit 6f9449be53f3ce383caed797708b332ede8d952c ]

Fix a soft lockup when NFS client delegation recovery is attempted
but the inode is in the process of being freed. When the
igrab(inode) call fails, and we have to restart the recovery process,
we need to ensure that we won't attempt to recover the same delegation
again.

Fixes: 45870d6909d5a ("NFSv4.1: Test delegation stateids when server...")
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/nfs/delegation.c
fs/nfs/delegation.h