diff options
author | Peter Huewe <peterhuewe@gmx.de> | 2013-03-01 19:46:40 +0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-03-01 12:04:39 -0800 |
commit | 9d8072e7c33991a08b29338f3f04dfef7c24afd5 (patch) | |
tree | 3fda1dd5842eafb90405d3566407b0c55816ddec /fs/autofs4/root.c | |
parent | b0af9cd9aab60ceb17d3ebabb9fdf4ff0a99cf50 (diff) | |
download | op-kernel-dev-9d8072e7c33991a08b29338f3f04dfef7c24afd5.zip op-kernel-dev-9d8072e7c33991a08b29338f3f04dfef7c24afd5.tar.gz |
autofs - Fix sparse warning: context imbalance in autofs4_d_automount() different lock contexts for basic block
Sparse complains:
fs/autofs4/root.c:409:9: sparse: context imbalance in 'autofs4_d_automount' - different lock contexts for basic block
This was introduced by commit f55fb0c24386 ("autofs4 - dont clear
DCACHE_NEED_AUTOMOUNT on rootless mount")
The function autofs4_d_automount can be left with the (&sbi->fs_lock)
held if sbi->version <= 4 and simple_empty(dentry) == false so the
warning seems valid.
--> Add an spin_unlock in this case before we jump to done
Unfortunately compile tested only.
Reported-by: Fengguang Wu <fengguang.wu@intel.com>
Signed-off-by: Peter Huewe <peterhuewe@gmx.de>
Acked-by: Ian Kent <raven@themaw.net>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/autofs4/root.c')
-rw-r--r-- | fs/autofs4/root.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/autofs4/root.c b/fs/autofs4/root.c index 230bd2a..9bd1625 100644 --- a/fs/autofs4/root.c +++ b/fs/autofs4/root.c @@ -383,8 +383,10 @@ static struct vfsmount *autofs4_d_automount(struct path *path) goto done; } } else { - if (!simple_empty(dentry)) + if (!simple_empty(dentry)) { + spin_unlock(&sbi->fs_lock); goto done; + } } ino->flags |= AUTOFS_INF_PENDING; spin_unlock(&sbi->fs_lock); |