+ lock-validator-handle-s_umount-recursion.patch added to -mm tree

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

 



The patch titled

     lock validator: handle s_umount recursion

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

     lock-validator-handle-s_umount-recursion.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: handle s_umount recursion
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>
Cc: Ingo Molnar <mingo@xxxxxxx>
Signed-off-by: Andrew Morton <akpm@xxxxxxxx>
---

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

diff -puN fs/super.c~lock-validator-handle-s_umount-recursion fs/super.c
--- devel/fs/super.c~lock-validator-handle-s_umount-recursion	2006-05-30 00:49:28.000000000 -0700
+++ devel-akpm/fs/super.c	2006-05-30 00:49:28.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-handle-s_umount-recursion include/linux/fs.h
--- devel/include/linux/fs.h~lock-validator-handle-s_umount-recursion	2006-05-30 00:49:28.000000000 -0700
+++ devel-akpm/include/linux/fs.h	2006-05-30 00:49:28.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-spinlock.h~lock-validator-handle-s_umount-recursion include/linux/rwsem-spinlock.h
--- devel/include/linux/rwsem-spinlock.h~lock-validator-handle-s_umount-recursion	2006-05-30 00:49:28.000000000 -0700
+++ devel-akpm/include/linux/rwsem-spinlock.h	2006-05-30 00:49:28.000000000 -0700
@@ -71,6 +71,14 @@ do {								\
 	__init_rwsem((sem), #sem, &__key);			\
 } while (0)
 
+/*
+ * 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)
+
+
 extern void FASTCALL(__down_read(struct rw_semaphore *sem));
 extern int FASTCALL(__down_read_trylock(struct rw_semaphore *sem));
 extern void FASTCALL(__down_write(struct rw_semaphore *sem));
_

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-handle-s_umount-recursion.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