nfsd4: fix, consolidate client_has_state

Whoops: first, I reimplemented the already-existing has_resources
without noticing; second, I got the test backwards.  I did pick a better
name, though.  Combine the two....

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
This commit is contained in:
J. Bruce Fields 2012-05-29 16:37:44 -04:00
parent b9831b59f3
commit 6eccece90b

View File

@ -1537,9 +1537,9 @@ static bool client_has_state(struct nfs4_client *clp)
* *
* Also note we should probably be using this in 4.0 case too. * Also note we should probably be using this in 4.0 case too.
*/ */
return list_empty(&clp->cl_openowners) return !list_empty(&clp->cl_openowners)
&& list_empty(&clp->cl_delegations) || !list_empty(&clp->cl_delegations)
&& list_empty(&clp->cl_sessions); || !list_empty(&clp->cl_sessions);
} }
__be32 __be32
@ -2069,13 +2069,6 @@ out:
return status; return status;
} }
static inline bool has_resources(struct nfs4_client *clp)
{
return !list_empty(&clp->cl_openowners)
|| !list_empty(&clp->cl_delegations)
|| !list_empty(&clp->cl_sessions);
}
__be32 __be32
nfsd4_destroy_clientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, struct nfsd4_destroy_clientid *dc) nfsd4_destroy_clientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, struct nfsd4_destroy_clientid *dc)
{ {
@ -2089,7 +2082,7 @@ nfsd4_destroy_clientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *csta
if (conf) { if (conf) {
clp = conf; clp = conf;
if (!is_client_expired(conf) && has_resources(conf)) { if (!is_client_expired(conf) && client_has_state(conf)) {
status = nfserr_clientid_busy; status = nfserr_clientid_busy;
goto out; goto out;
} }