aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArjan van de Ven <arjan@infradead.org>2006-07-03 03:25:28 -0400
committerLinus Torvalds <torvalds@g5.osdl.org>2006-07-03 18:27:09 -0400
commit897c6ff9568bcb102ffc6b465ebe1def0cba829d (patch)
tree05e0ea4e39fd5b064bdcab351a468b1f3cb963d5
parentcf51624999e56c88154b5f7d451a265db6aabff7 (diff)
[PATCH] lockdep: annotate sb ->s_umount
The s_umount rwsem needs to be classified as per-superblock since it's perfectly legit to keep multiple of those recursively in the VFS locking rules. Has no effect on non-lockdep kernels. Signed-off-by: Arjan van de Ven <arjan@linux.intel.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--fs/super.c1
-rw-r--r--include/linux/fs.h1
2 files changed, 2 insertions, 0 deletions
diff --git a/fs/super.c b/fs/super.c
index 5a4fe8be462a..6d4e8174b6db 100644
--- a/fs/super.c
+++ b/fs/super.c
@@ -72,6 +72,7 @@ static struct super_block *alloc_super(struct file_system_type *type)
72 INIT_LIST_HEAD(&s->s_inodes); 72 INIT_LIST_HEAD(&s->s_inodes);
73 init_rwsem(&s->s_umount); 73 init_rwsem(&s->s_umount);
74 mutex_init(&s->s_lock); 74 mutex_init(&s->s_lock);
75 lockdep_set_class(&s->s_umount, &type->s_umount_key);
75 /* 76 /*
76 * The locking rules for s_lock are up to the 77 * The locking rules for s_lock are up to the
77 * filesystem. For example ext3fs has different 78 * filesystem. For example ext3fs has different
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 0a3ea52d711e..e26de68059af 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -1296,6 +1296,7 @@ struct file_system_type {
1296 struct file_system_type * next; 1296 struct file_system_type * next;
1297 struct list_head fs_supers; 1297 struct list_head fs_supers;
1298 struct lock_class_key s_lock_key; 1298 struct lock_class_key s_lock_key;
1299 struct lock_class_key s_umount_key;
1299}; 1300};
1300 1301
1301extern int get_sb_bdev(struct file_system_type *fs_type, 1302extern int get_sb_bdev(struct file_system_type *fs_type,