From: Chuck Lever Date: Tue, 2 Oct 2012 16:18:12 +0000 (-0700) Subject: NFS: nfs41_walk_client_list(): re-lock before iterating X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=c2ccc084eb46ae718a200ad9c2606c258bf79a25;p=linux-beck.git 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 Cc: Fengguang Wu Signed-off-by: Trond Myklebust --- diff --git a/fs/nfs/nfs4client.c b/fs/nfs/nfs4client.c index 8466e6046ff5..6bacfde1319a 100644 --- a/fs/nfs/nfs4client.c +++ b/fs/nfs/nfs4client.c @@ -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; }