summaryrefslogtreecommitdiff
path: root/fs/nfs/delegation.h
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@hammerspace.com>2019-02-21 22:51:25 +0300
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2020-01-29 12:24:17 +0300
commite4a9330d7fd56b32fc87ee5e07073b0c6034df7d (patch)
treee6b9a619c50ce2a5a5844d1b2ebf535bbef8e34a /fs/nfs/delegation.h
parent020fa8dc3a8ba2616cf4ae699a3e1818d04262fa (diff)
downloadlinux-e4a9330d7fd56b32fc87ee5e07073b0c6034df7d.tar.xz
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>
Diffstat (limited to 'fs/nfs/delegation.h')
-rw-r--r--fs/nfs/delegation.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfs/delegation.h b/fs/nfs/delegation.h
index 2c6cb7fb7d5e..f72095bf9e10 100644
--- a/fs/nfs/delegation.h
+++ b/fs/nfs/delegation.h
@@ -33,6 +33,7 @@ enum {
NFS_DELEGATION_RETURNING,
NFS_DELEGATION_REVOKED,
NFS_DELEGATION_TEST_EXPIRED,
+ NFS_DELEGATION_INODE_FREEING,
};
int nfs_inode_set_delegation(struct inode *inode, struct rpc_cred *cred, struct nfs_openres *res);