提交 63db4632 编写于 作者: J J. Bruce Fields

nfsd4: setclientid/confirm comment cleanup

Be a little more concise.
Signed-off-by: NJ. Bruce Fields <bfields@redhat.com>
上级 e98479b8
...@@ -2169,17 +2169,13 @@ nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, ...@@ -2169,17 +2169,13 @@ nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
if (status) if (status)
return status; return status;
/*
* XXX The Duplicate Request Cache (DRC) has been checked (??)
* We get here on a DRC miss.
*/
strhashval = clientstr_hashval(dname); strhashval = clientstr_hashval(dname);
/* Cases below refer to rfc 3530 section 14.2.33: */
nfs4_lock_state(); nfs4_lock_state();
conf = find_confirmed_client_by_str(dname, strhashval); conf = find_confirmed_client_by_str(dname, strhashval);
if (conf) { if (conf) {
/* RFC 3530 14.2.33 CASE 0: */ /* case 0: */
status = nfserr_clid_inuse; status = nfserr_clid_inuse;
if (clp_used_exchangeid(conf)) if (clp_used_exchangeid(conf))
goto out; goto out;
...@@ -2192,18 +2188,10 @@ nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, ...@@ -2192,18 +2188,10 @@ nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
goto out; goto out;
} }
} }
/*
* section 14.2.33 of RFC 3530 (under the heading "IMPLEMENTATION")
* has a description of SETCLIENTID request processing consisting
* of 5 bullet points, labeled as CASE0 - CASE4 below.
*/
unconf = find_unconfirmed_client_by_str(dname, strhashval); unconf = find_unconfirmed_client_by_str(dname, strhashval);
status = nfserr_jukebox; status = nfserr_jukebox;
if (!conf) { if (!conf) {
/* /* case 4: placed first, because it's the normal case */
* RFC 3530 14.2.33 CASE 4:
* placed first, because it is the normal case
*/
if (unconf) if (unconf)
expire_client(unconf); expire_client(unconf);
new = create_client(clname, dname, rqstp, &clverifier); new = create_client(clname, dname, rqstp, &clverifier);
...@@ -2211,10 +2199,7 @@ nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, ...@@ -2211,10 +2199,7 @@ nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
goto out; goto out;
gen_clid(new); gen_clid(new);
} else if (same_verf(&conf->cl_verifier, &clverifier)) { } else if (same_verf(&conf->cl_verifier, &clverifier)) {
/* /* case 1: probable callback update */
* RFC 3530 14.2.33 CASE 1:
* probable callback update
*/
if (unconf) { if (unconf) {
/* Note this is removing unconfirmed {*x***}, /* Note this is removing unconfirmed {*x***},
* which is stronger than RFC recommended {vxc**}. * which is stronger than RFC recommended {vxc**}.
...@@ -2228,21 +2213,13 @@ nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, ...@@ -2228,21 +2213,13 @@ nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
goto out; goto out;
copy_clid(new, conf); copy_clid(new, conf);
} else if (!unconf) { } else if (!unconf) {
/* /* case 2: probable client reboot: */
* RFC 3530 14.2.33 CASE 2:
* probable client reboot; state will be removed if
* confirmed.
*/
new = create_client(clname, dname, rqstp, &clverifier); new = create_client(clname, dname, rqstp, &clverifier);
if (new == NULL) if (new == NULL)
goto out; goto out;
gen_clid(new); gen_clid(new);
} else { } else {
/* /* case 3: probable client reboot: */
* RFC 3530 14.2.33 CASE 3:
* probable client reboot; state will be removed if
* confirmed.
*/
expire_client(unconf); expire_client(unconf);
new = create_client(clname, dname, rqstp, &clverifier); new = create_client(clname, dname, rqstp, &clverifier);
if (new == NULL) if (new == NULL)
...@@ -2266,11 +2243,6 @@ nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, ...@@ -2266,11 +2243,6 @@ nfsd4_setclientid(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
} }
/*
* Section 14.2.34 of RFC 3530 (under the heading "IMPLEMENTATION") has
* a description of SETCLIENTID_CONFIRM request processing consisting of 4
* bullets, labeled as CASE1 - CASE4 below.
*/
__be32 __be32
nfsd4_setclientid_confirm(struct svc_rqst *rqstp, nfsd4_setclientid_confirm(struct svc_rqst *rqstp,
struct nfsd4_compound_state *cstate, struct nfsd4_compound_state *cstate,
...@@ -2293,17 +2265,10 @@ nfsd4_setclientid_confirm(struct svc_rqst *rqstp, ...@@ -2293,17 +2265,10 @@ nfsd4_setclientid_confirm(struct svc_rqst *rqstp,
conf = find_confirmed_client(clid); conf = find_confirmed_client(clid);
unconf = find_unconfirmed_client(clid); unconf = find_unconfirmed_client(clid);
/* /* cases below refer to rfc 3530 section 14.2.34: */
* section 14.2.34 of RFC 3530 has a description of
* SETCLIENTID_CONFIRM request processing consisting
* of 4 bullet points, labeled as CASE1 - CASE4 below.
*/
status = nfserr_clid_inuse; status = nfserr_clid_inuse;
if (conf && unconf && same_verf(&confirm, &unconf->cl_confirm)) { if (conf && unconf && same_verf(&confirm, &unconf->cl_confirm)) {
/* /* case 1: callback update */
* RFC 3530 14.2.34 CASE 1:
* callback update
*/
if (!same_creds(&conf->cl_cred, &unconf->cl_cred)) if (!same_creds(&conf->cl_cred, &unconf->cl_cred))
status = nfserr_clid_inuse; status = nfserr_clid_inuse;
else { else {
...@@ -2313,21 +2278,14 @@ nfsd4_setclientid_confirm(struct svc_rqst *rqstp, ...@@ -2313,21 +2278,14 @@ nfsd4_setclientid_confirm(struct svc_rqst *rqstp,
status = nfs_ok; status = nfs_ok;
} }
} else if (conf && !unconf) { } else if (conf && !unconf) {
/* /* case 2: probable retransmit: */
* RFC 3530 14.2.34 CASE 2:
* probable retransmitted request; play it safe and
* do nothing.
*/
if (!same_creds(&conf->cl_cred, &rqstp->rq_cred)) if (!same_creds(&conf->cl_cred, &rqstp->rq_cred))
status = nfserr_clid_inuse; status = nfserr_clid_inuse;
else else
status = nfs_ok; status = nfs_ok;
} else if (!conf && unconf } else if (!conf && unconf
&& same_verf(&unconf->cl_confirm, &confirm)) { && same_verf(&unconf->cl_confirm, &confirm)) {
/* /* case 3: normal case; new or rebooted client */
* RFC 3530 14.2.34 CASE 3:
* Normal case; new or rebooted client:
*/
if (!same_creds(&unconf->cl_cred, &rqstp->rq_cred)) { if (!same_creds(&unconf->cl_cred, &rqstp->rq_cred)) {
status = nfserr_clid_inuse; status = nfserr_clid_inuse;
} else { } else {
...@@ -2346,10 +2304,7 @@ nfsd4_setclientid_confirm(struct svc_rqst *rqstp, ...@@ -2346,10 +2304,7 @@ nfsd4_setclientid_confirm(struct svc_rqst *rqstp,
} }
} else if ((!conf || !same_verf(&conf->cl_confirm, &confirm)) } else if ((!conf || !same_verf(&conf->cl_confirm, &confirm))
&& (!unconf || !same_verf(&unconf->cl_confirm, &confirm))) { && (!unconf || !same_verf(&unconf->cl_confirm, &confirm))) {
/* /* case 4: client hasn't noticed we rebooted yet? */
* RFC 3530 14.2.34 CASE 4:
* Client probably hasn't noticed that we rebooted yet.
*/
status = nfserr_stale_clientid; status = nfserr_stale_clientid;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册