summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2013-01-18 23:01:43 -0500
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-02-03 18:27:05 -0600
commit55eca33b3b4d17faf8fa428a99fb3e95b4ce76fe (patch)
tree35850e52236477557505ef557bae5c2d6b0d4abc
parent742f4ab5acf285f74a86462aa2a78daf1a430ae8 (diff)
NFSv4.1: Ensure that nfs41_walk_client_list() does start lease recovery
commit 65436ec0c8e344d9b23302b686e418f2a7b7cf7b upstream. 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> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-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 da540bf412b8..1f5513101dfd 100644
--- a/fs/nfs/nfs4client.c
+++ b/fs/nfs/nfs4client.c
@@ -439,14 +439,17 @@ int nfs41_walk_client_list(struct nfs_client *new,
nfs_put_client(prev);
prev = pos;
+ nfs4_schedule_lease_recovery(pos);
status = nfs_wait_client_init_complete(pos);
if (status < 0) {
nfs_put_client(pos);
spin_lock(&nn->nfs_client_lock);
continue;
}
-
+ status = pos->cl_cons_state;
spin_lock(&nn->nfs_client_lock);
+ if (status < 0)
+ continue;
}
if (pos->rpc_ops != new->rpc_ops)