diff options
author | J. Bruce Fields <bfields@redhat.com> | 2012-03-06 14:43:36 -0500 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2012-03-06 18:13:24 -0500 |
commit | 393d8ed80f0e9b7edad737053a5fb375f0bf4849 (patch) | |
tree | 91069f3a1fa60811638341b46a8d87b715899758 /fs/nfsd | |
parent | 1255a8f36cb16a02540bdad91c0bc0971b9fb429 (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')
-rw-r--r-- | fs/nfsd/nfs4state.c | 4 |
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 | /* |