aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorNeil Brown <neilb@cse.unsw.edu.au>2005-01-04 05:48:47 -0800
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-01-04 05:48:47 -0800
commit055c60532108f1c4fd9950e8d304ae915cc7e34e (patch)
tree8ac6bebff018879f9de4495819e4667f27984abc /fs
parentf153348e00561c91c36b4fb0b776755ec5fc7618 (diff)
downloadhistory-055c60532108f1c4fd9950e8d304ae915cc7e34e.tar.gz
[PATCH] knfsd: probe the callback path upon a successful setclientid_confirm
Signed-off-by: Andy Adamson <andros@citi.umich.edu> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/nfsd/nfs4state.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/nfsd/nfs4state.c b/fs/nfsd/nfs4state.c
index d363539f1b8fae..180b136eeee00e 100644
--- a/fs/nfsd/nfs4state.c
+++ b/fs/nfsd/nfs4state.c
@@ -724,6 +724,7 @@ nfsd4_setclientid_confirm(struct svc_rqst *rqstp, struct nfsd4_setclientid_confi
status = nfserr_clid_inuse;
else {
expire_client(conf);
+ clp = unconf;
move_to_confirmed(unconf, idhashval);
status = nfs_ok;
}
@@ -741,6 +742,7 @@ nfsd4_setclientid_confirm(struct svc_rqst *rqstp, struct nfsd4_setclientid_confi
if (!cmp_creds(&conf->cl_cred,&rqstp->rq_cred)) {
status = nfserr_clid_inuse;
} else {
+ clp = conf;
status = nfs_ok;
}
goto out;
@@ -755,6 +757,7 @@ nfsd4_setclientid_confirm(struct svc_rqst *rqstp, struct nfsd4_setclientid_confi
status = nfserr_clid_inuse;
} else {
status = nfs_ok;
+ clp = unconf;
move_to_confirmed(unconf, idhashval);
}
goto out;
@@ -774,7 +777,8 @@ nfsd4_setclientid_confirm(struct svc_rqst *rqstp, struct nfsd4_setclientid_confi
status = nfserr_inval;
goto out;
out:
- /* XXX if status == nfs_ok, probe callback path */
+ if (!status)
+ nfsd4_probe_callback(clp);
nfs4_unlock_state();
return status;
}