aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2013-01-18 23:01:43 -0500
committerTrond Myklebust <Trond.Myklebust@netapp.com>2013-01-27 15:51:41 -0500
commit65436ec0c8e344d9b23302b686e418f2a7b7cf7b (patch)
treef19617b6b7a8885f81c45c825dbaab580b3c6f19 /fs/nfs
parent202c312dba7d95b96493b412c606163a0cd83984 (diff)
NFSv4.1: Ensure that nfs41_walk_client_list() does start lease recovery
We do need to start the lease recovery thread prior to waiting for the client initialisation to complete in NFSv4.1. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com> Cc: Chuck Lever <chuck.lever@oracle.com> Cc: Ben Greear <greearb@candelatech.com> Cc: stable@vger.kernel.org [>=3.7]
Diffstat (limited to 'fs/nfs')
-rw-r--r--fs/nfs/nfs4client.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/nfs/nfs4client.c b/fs/nfs/nfs4client.c
index 2f21f17fb16c..2e9779b58b7a 100644
--- a/fs/nfs/nfs4client.c
+++ b/fs/nfs/nfs4client.c
@@ -440,14 +440,17 @@ int nfs41_walk_client_list(struct nfs_client *new,
440 nfs_put_client(prev); 440 nfs_put_client(prev);
441 prev = pos; 441 prev = pos;
442 442
443 nfs4_schedule_lease_recovery(pos);
443 status = nfs_wait_client_init_complete(pos); 444 status = nfs_wait_client_init_complete(pos);
444 if (status < 0) { 445 if (status < 0) {
445 nfs_put_client(pos); 446 nfs_put_client(pos);
446 spin_lock(&nn->nfs_client_lock); 447 spin_lock(&nn->nfs_client_lock);
447 continue; 448 continue;
448 } 449 }
449 450 status = pos->cl_cons_state;
450 spin_lock(&nn->nfs_client_lock); 451 spin_lock(&nn->nfs_client_lock);
452 if (status < 0)
453 continue;
451 } 454 }
452 455
453 if (pos->rpc_ops != new->rpc_ops) 456 if (pos->rpc_ops != new->rpc_ops)