The patch titled lock validator: handle s_umount recursion has been removed from the -mm tree. Its filename is lock-validator-handle-s_umount-recursion.patch This patch was probably dropped from -mm because it has now been merged into a subsystem tree or into Linus's tree, or because it was folded into its parent patch in the -mm tree. ------------------------------------------------------ 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