aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfsd/nfs4state.c
diff options
context:
space:
mode:
authorJ. Bruce Fields <bfields@redhat.com>2012-03-06 14:43:36 -0500
committerJ. Bruce Fields <bfields@redhat.com>2012-03-06 18:13:24 -0500
commit393d8ed80f0e9b7edad737053a5fb375f0bf4849 (patch)
tree91069f3a1fa60811638341b46a8d87b715899758 /fs/nfsd/nfs4state.c
parent1255a8f36cb16a02540bdad91c0bc0971b9fb429 (diff)
nfsd4: purge stable client records with insufficient state
To escape having your stable storage record purged at the end of the grace period, it's not sufficient to simply have performed a setclientid_confirm; you also need to meet the same requirements as someone creating a new record: either you should have done an open or open reclaim (in the 4.0 case) or a reclaim_complete (in the 4.1 case). Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/nfs4state.c')
-rw-r--r--fs/nfsd/nfs4state.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index 207c3bd266aa..c9c446d682ae 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -4415,7 +4415,9 @@ nfs4_has_reclaimed_state(const char *name, bool use_exchange_id)
4415 struct nfs4_client *clp; 4415 struct nfs4_client *clp;
4416 4416
4417 clp = find_confirmed_client_by_str(name, strhashval); 4417 clp = find_confirmed_client_by_str(name, strhashval);
4418 return clp ? 1 : 0; 4418 if (!clp)
4419 return 0;
4420 return clp->cl_firststate;
4419} 4421}
4420 4422
4421/* 4423/*