From c2ccc084eb46ae718a200ad9c2606c258bf79a25 Mon Sep 17 00:00:00 2001 From: Chuck Lever Date: Tue, 2 Oct 2012 09:18:12 -0700 Subject: 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 --- fs/nfs/nfs4client.c | 1 + 1 file changed, 1 insertion(+) (limited to 'fs/nfs/nfs4client.c') 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; } -- cgit v1.2.3