mirror of https://gitee.com/openkylin/linux.git
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:
parent
202c312dba
commit
65436ec0c8
|
@ -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)
|
||||||
|
|
Loading…
Reference in New Issue