+ lock-validator-special-locking-sb-s_umount-2.patch added to -mm tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The patch titled

     lock validator: special locking: sb->s_umount #2

has been added to the -mm tree.  Its filename is

     lock-validator-special-locking-sb-s_umount-2.patch

See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find
out what to do about this

------------------------------------------------------
Subject: lock validator: special locking: sb->s_umount #2
From: Arjan van de Ven <arjan@xxxxxxxxxxxxx>


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.

Signed-off-by: Arjan van de Ven <arjan@xxxxxxxxxxxxxxx>
Signed-off-by: Ingo Molnar <mingo@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

 fs/super.c            |    2 +-
 include/linux/fs.h    |    1 +
 include/linux/rwsem.h |    7 +++++++
 3 files changed, 9 insertions(+), 1 deletion(-)

diff -puN fs/super.c~lock-validator-special-locking-sb-s_umount-2 fs/super.c
--- devel/fs/super.c~lock-validator-special-locking-sb-s_umount-2	2006-05-30 00:52:10.000000000 -0700
+++ devel-akpm/fs/super.c	2006-05-30 00:52:11.000000000 -0700
@@ -71,7 +71,7 @@ static struct super_block *alloc_super(s
 		INIT_LIST_HEAD(&s->s_instances);
 		INIT_HLIST_HEAD(&s->s_anon);
 		INIT_LIST_HEAD(&s->s_inodes);
-		init_rwsem(&s->s_umount);
+		init_rwsem_key(&s->s_umount, &type->s_umount_key);
 		/*
 		 * The locking rules for s_lock are up to the
 		 * filesystem. For example ext3fs has different
diff -puN include/linux/fs.h~lock-validator-special-locking-sb-s_umount-2 include/linux/fs.h
--- devel/include/linux/fs.h~lock-validator-special-locking-sb-s_umount-2	2006-05-30 00:52:10.000000000 -0700
+++ devel-akpm/include/linux/fs.h	2006-05-30 00:52:11.000000000 -0700
@@ -1362,6 +1362,7 @@ struct file_system_type {
 	struct file_system_type * next;
 	struct list_head fs_supers;
 	struct lockdep_type_key s_lock_key;
+	struct lockdep_type_key s_umount_key;
 };
 
 struct super_block *get_sb_bdev(struct file_system_type *fs_type,
diff -puN include/linux/rwsem.h~lock-validator-special-locking-sb-s_umount-2 include/linux/rwsem.h
--- devel/include/linux/rwsem.h~lock-validator-special-locking-sb-s_umount-2	2006-05-30 00:52:10.000000000 -0700
+++ devel-akpm/include/linux/rwsem.h	2006-05-30 00:52:11.000000000 -0700
@@ -26,6 +26,13 @@ struct rw_semaphore;
 #include <asm/rwsem.h> /* use an arch-specific implementation */
 #endif
 
+/*
+ * Lockdep: type splitting can also be done for dynamic locks, if for
+ * example there are per-CPU dynamically allocated locks:
+ */
+#define init_rwsem_key(sem, key)				\
+	__init_rwsem((sem), #sem, key)
+
 #ifndef rwsemtrace
 #if RWSEM_DEBUG
 extern void FASTCALL(rwsemtrace(struct rw_semaphore *sem, const char *str));
_

Patches currently in -mm which might be from arjan@xxxxxxxxxxxxx are

git-acpi.patch
git-infiniband.patch
git-mtd.patch
vdso-randomize-the-i386-vdso-by-moving-it-into-a-vma.patch
vdso-randomize-the-i386-vdso-by-moving-it-into-a-vma-tidy.patch
vdso-randomize-the-i386-vdso-by-moving-it-into-a-vma-arch_vma_name-fix.patch
vdso-randomize-the-i386-vdso-by-moving-it-into-a-vma-vs-x86_64-mm-reliable-stack-trace-support-i386.patch
vdso-randomize-the-i386-vdso-by-moving-it-into-a-vma-vs-x86_64-mm-reliable-stack-trace-support-i386-2.patch
lock-validator-special-locking-sb-s_umount-2.patch
debug-shared-irqs.patch
vdso-print-fatal-signals.patch
vdso-improve-print_fatal_signals-support-by-adding-memory-maps.patch

-
To unsubscribe from this list: send the line "unsubscribe mm-commits" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Kernel Newbies FAQ]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Photo]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux