NFS associate sessionid with callback connection

The sessions based callback service is started prior to the CREATE_SESSION call
so that it can handle CB_NULL requests which can be sent before the
CREATE_SESSION call returns and the session ID is known.

Set the callback sessionid after a sucessful CREATE_SESSION.

Signed-off-by: Andy Adamson <andros@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
Andy Adamson 2011-01-06 02:04:31 +00:00 committed by Trond Myklebust
parent f4eecd5da3
commit 2c2618c6f2
5 changed files with 42 additions and 1 deletions

View file

@ -192,6 +192,12 @@ int nfs41_init_clientid(struct nfs_client *clp, struct rpc_cred *cred)
status = nfs4_proc_create_session(clp);
if (status != 0)
goto out;
status = nfs4_set_callback_sessionid(clp);
if (status != 0) {
printk(KERN_WARNING "Sessionid not set. No callback service\n");
nfs_callback_down(1);
status = 0;
}
nfs41_setup_state_renewal(clp);
nfs_mark_client_ready(clp, NFS_CS_READY);
out: