Commit 055c6053 authored by Neil Brown's avatar Neil Brown Committed by Linus Torvalds

[PATCH] knfsd: probe the callback path upon a successful setclientid_confirm

Signed-off-by: default avatarAndy Adamson <andros@citi.umich.edu>
Signed-off-by: default avatarNeil Brown <neilb@cse.unsw.edu.au>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent f153348e
...@@ -724,6 +724,7 @@ nfsd4_setclientid_confirm(struct svc_rqst *rqstp, struct nfsd4_setclientid_confi ...@@ -724,6 +724,7 @@ nfsd4_setclientid_confirm(struct svc_rqst *rqstp, struct nfsd4_setclientid_confi
status = nfserr_clid_inuse; status = nfserr_clid_inuse;
else { else {
expire_client(conf); expire_client(conf);
clp = unconf;
move_to_confirmed(unconf, idhashval); move_to_confirmed(unconf, idhashval);
status = nfs_ok; status = nfs_ok;
} }
...@@ -741,6 +742,7 @@ nfsd4_setclientid_confirm(struct svc_rqst *rqstp, struct nfsd4_setclientid_confi ...@@ -741,6 +742,7 @@ nfsd4_setclientid_confirm(struct svc_rqst *rqstp, struct nfsd4_setclientid_confi
if (!cmp_creds(&conf->cl_cred,&rqstp->rq_cred)) { if (!cmp_creds(&conf->cl_cred,&rqstp->rq_cred)) {
status = nfserr_clid_inuse; status = nfserr_clid_inuse;
} else { } else {
clp = conf;
status = nfs_ok; status = nfs_ok;
} }
goto out; goto out;
...@@ -755,6 +757,7 @@ nfsd4_setclientid_confirm(struct svc_rqst *rqstp, struct nfsd4_setclientid_confi ...@@ -755,6 +757,7 @@ nfsd4_setclientid_confirm(struct svc_rqst *rqstp, struct nfsd4_setclientid_confi
status = nfserr_clid_inuse; status = nfserr_clid_inuse;
} else { } else {
status = nfs_ok; status = nfs_ok;
clp = unconf;
move_to_confirmed(unconf, idhashval); move_to_confirmed(unconf, idhashval);
} }
goto out; goto out;
...@@ -774,7 +777,8 @@ nfsd4_setclientid_confirm(struct svc_rqst *rqstp, struct nfsd4_setclientid_confi ...@@ -774,7 +777,8 @@ nfsd4_setclientid_confirm(struct svc_rqst *rqstp, struct nfsd4_setclientid_confi
status = nfserr_inval; status = nfserr_inval;
goto out; goto out;
out: out:
/* XXX if status == nfs_ok, probe callback path */ if (!status)
nfsd4_probe_callback(clp);
nfs4_unlock_state(); nfs4_unlock_state();
return status; return status;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment