NFS: nfs41_walk_client_list(): re-lock before iterating

Sparse identified an execution path in nfs41_walk_client_list()
where the nfs_client_lock is not re-acquired before taking the next
loop iteration.

fs/nfs/nfs4client.c:437:9: sparse: context imbalance in
 'nfs41_walk_client_list' - different lock contexts for basic block

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Cc: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
This commit is contained in:
Chuck Lever 2012-10-02 09:18:12 -07:00 committed by Trond Myklebust
parent ee314c2a35
commit c2ccc084eb

View File

@ -450,6 +450,7 @@ int nfs41_walk_client_list(struct nfs_client *new,
error = nfs_wait_client_init_complete(pos);
if (error < 0) {
nfs_put_client(pos);
spin_lock(&nn->nfs_client_lock);
continue;
}