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]
This commit is contained in:
Trond Myklebust 2013-01-18 23:01:43 -05:00
parent 202c312dba
commit 65436ec0c8
1 changed files with 4 additions and 1 deletions

View File

@ -440,14 +440,17 @@ int nfs41_walk_client_list(struct nfs_client *new,
nfs_put_client(prev); nfs_put_client(prev);
prev = pos; prev = pos;
nfs4_schedule_lease_recovery(pos);
status = nfs_wait_client_init_complete(pos); status = nfs_wait_client_init_complete(pos);
if (status < 0) { if (status < 0) {
nfs_put_client(pos); nfs_put_client(pos);
spin_lock(&nn->nfs_client_lock); spin_lock(&nn->nfs_client_lock);
continue; continue;
} }
status = pos->cl_cons_state;
spin_lock(&nn->nfs_client_lock); spin_lock(&nn->nfs_client_lock);
if (status < 0)
continue;
} }
if (pos->rpc_ops != new->rpc_ops) if (pos->rpc_ops != new->rpc_ops)