From 87d6216a87dbef30d5f8a657af8610c3fc3a49cb Mon Sep 17 00:00:00 2001 From: Ricardo Labiaga Date: Wed, 9 Mar 2011 13:13:44 -0500 Subject: [PATCH] --- yaml --- r: 234117 b: refs/heads/master c: 7d6d63d6427090cbb1d282364b65b12634ca59bd h: refs/heads/master i: 234115: 07fac9efdc8883a20d33cd4d0264cd282b681821 v: v3 --- [refs] | 2 +- trunk/fs/nfs/nfs4proc.c | 12 +++++++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index d38bd20b92e6..1c9cc4a5d0a2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 4cea288aaf0e11647880cc487350b1dc45d9febc +refs/heads/master: 7d6d63d6427090cbb1d282364b65b12634ca59bd diff --git a/trunk/fs/nfs/nfs4proc.c b/trunk/fs/nfs/nfs4proc.c index b07d4e23b876..d3c705aa71f6 100644 --- a/trunk/fs/nfs/nfs4proc.c +++ b/trunk/fs/nfs/nfs4proc.c @@ -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;