Skip to content

Commit

Permalink
NFSv4.1: Retry CREATE_SESSION on NFS4ERR_DELAY
Browse files Browse the repository at this point in the history
Fix bug where we currently retry the EXCHANGEID call again, eventhough
we already have a valid clientid.  Instead, delay and retry the CREATE_SESSION
call.

Signed-off-by: Ricardo Labiaga <Ricardo.Labiaga@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
  • Loading branch information
Ricardo Labiaga authored and Trond Myklebust committed Mar 10, 2011
1 parent 4cea288 commit 7d6d63d
Showing 1 changed file with 11 additions and 1 deletion.
12 changes: 11 additions & 1 deletion fs/nfs/nfs4proc.c
Original file line number Diff line number Diff line change
Expand Up @@ -5028,10 +5028,20 @@ int nfs4_proc_create_session(struct nfs_client *clp)
int status;
unsigned *ptr;
struct nfs4_session *session = clp->cl_session;
long timeout = 0;
int err;

dprintk("--> %s clp=%p session=%p\n", __func__, clp, session);

status = _nfs4_proc_create_session(clp);
do {
status = _nfs4_proc_create_session(clp);
if (status == -NFS4ERR_DELAY) {
err = nfs4_delay(clp->cl_rpcclient, &timeout);
if (err)
status = err;
}
} while (status == -NFS4ERR_DELAY);

if (status)
goto out;

Expand Down

0 comments on commit 7d6d63d

Please sign in to comment.