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 [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to