summaryrefslogtreecommitdiffstats
path: root/fs/nfs/nfs4state.c
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@primarydata.com>2017-11-06 15:28:11 -0500
committerAnna Schumaker <Anna.Schumaker@Netapp.com>2017-11-17 16:43:49 -0500
commit46280d9d3de67f64c5bd30a7bbdc372d69f38d98 (patch)
treeef7fb6fa7ba94763cd04ff82e52ae105c310dc31 /fs/nfs/nfs4state.c
parent140087fdf65b271055de1e1669c8016a908b6a85 (diff)
downloadlinux-stable-46280d9d3de67f64c5bd30a7bbdc372d69f38d98.tar.gz
linux-stable-46280d9d3de67f64c5bd30a7bbdc372d69f38d98.tar.bz2
linux-stable-46280d9d3de67f64c5bd30a7bbdc372d69f38d98.zip
NFSv4: Check the open stateid when searching for expired state
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Diffstat (limited to 'fs/nfs/nfs4state.c')
-rw-r--r--fs/nfs/nfs4state.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c
index b6a0cf7fa1f6..ff2794412e6f 100644
--- a/fs/nfs/nfs4state.c
+++ b/fs/nfs/nfs4state.c
@@ -1431,6 +1431,11 @@ void nfs_inode_find_state_and_recover(struct inode *inode,
found = true;
continue;
}
+ if (nfs4_stateid_match_other(&state->open_stateid, stateid) &&
+ nfs4_state_mark_reclaim_nograce(clp, state)) {
+ found = true;
+ continue;
+ }
if (nfs_state_lock_state_matches_stateid(state, stateid) &&
nfs4_state_mark_reclaim_nograce(clp, state))
found = true;