diff options
author | J. Bruce Fields <bfields@redhat.com> | 2013-03-12 15:12:37 +0100 |
---|---|---|
committer | J. Bruce Fields <bfields@redhat.com> | 2013-04-03 17:48:34 +0200 |
commit | 78389046f733564d5c2c94f0b8d6ff0cdae951d9 (patch) | |
tree | ed4317ab1f47f65e03a72eb95e1a82bcb8338e95 /fs/nfsd/nfs4state.c | |
parent | nfsd: fix bug on nfs4 stateid deallocation (diff) | |
download | linux-78389046f733564d5c2c94f0b8d6ff0cdae951d9.tar.xz linux-78389046f733564d5c2c94f0b8d6ff0cdae951d9.zip |
nfsd4: warn on odd create_session state
This should never happen.
(Note: the comparable case in setclientid_confirm *can* happen, since
updating a client record can result in both confirmed and unconfirmed
records with the same clientid.)
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Diffstat (limited to 'fs/nfsd/nfs4state.c')
-rw-r--r-- | fs/nfsd/nfs4state.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c index aac878ecabc4..ef7c6222b7c8 100644 --- a/fs/nfsd/nfs4state.c +++ b/fs/nfsd/nfs4state.c @@ -1788,6 +1788,7 @@ nfsd4_create_session(struct svc_rqst *rqstp, nfs4_lock_state(); unconf = find_unconfirmed_client(&cr_ses->clientid, true, nn); conf = find_confirmed_client(&cr_ses->clientid, true, nn); + WARN_ON_ONCE(conf && unconf); if (conf) { cs_slot = &conf->cl_cs_slot; @@ -2129,6 +2130,7 @@ nfsd4_destroy_clientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *csta nfs4_lock_state(); unconf = find_unconfirmed_client(&dc->clientid, true, nn); conf = find_confirmed_client(&dc->clientid, true, nn); + WARN_ON_ONCE(conf && unconf); if (conf) { clp = conf; |