Messages in this thread Patch in this message | | | Subject | [PATCH 25/27] r-o-bind-mounts-track-number-of-mount-writers-make-lockdep-happy-with-r-o-bind-mounts | From | Dave Hansen <> | Date | Thu, 01 Nov 2007 16:09:00 -0700 |
| |
With the r/o bind mount patches, we can have as many spinlocks nested as there are CPUs on the system. Lockdep freaks out after 8.
So, create a new lockdep class of locks for the mnt_writer spinlocks, and initialize each of the cpu locks to be in a different class.
It should shut up warnings like this, while still allowing some of the lockdep goodness to remain:
============================================= [ INFO: possible recursive locking detected ] 2.6.23-rc6 #6
---
linux-2.6.git-dave/fs/namespace.c | 2 ++ 1 file changed, 2 insertions(+)
diff -puN fs/namespace.c~r-o-bind-mounts-track-number-of-mount-writers-make-lockdep-happy-with-r-o-bind-mounts fs/namespace.c --- linux-2.6.git/fs/namespace.c~r-o-bind-mounts-track-number-of-mount-writers-make-lockdep-happy-with-r-o-bind-mounts 2007-11-01 14:46:21.000000000 -0700 +++ linux-2.6.git-dave/fs/namespace.c 2007-11-01 14:46:21.000000000 -0700 @@ -112,6 +112,7 @@ struct mnt_writer { * must be ordered by cpu number. */ spinlock_t lock; + struct lock_class_key lock_class; /* compiles out with !lockdep */ unsigned long count; struct vfsmount *mnt; } ____cacheline_aligned_in_smp; @@ -123,6 +124,7 @@ static int __init init_mnt_writers(void) for_each_possible_cpu(cpu) { struct mnt_writer *writer = &per_cpu(mnt_writers, cpu); spin_lock_init(&writer->lock); + lockdep_set_class(&writer->lock, &writer->lock_class); writer->count = 0; } return 0; _ - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |