[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <20071101230900.13469A0F@kernel>
Date: Thu, 01 Nov 2007 16:09:00 -0700
From: Dave Hansen <haveblue@...ibm.com>
To: akpm@...l.org
Cc: linux-kernel@...r.kernel.org, miklos@...redi.hu, hch@...radead.org,
Dave Hansen <haveblue@...ibm.com>
Subject: [PATCH 25/27] r-o-bind-mounts-track-number-of-mount-writers-make-lockdep-happy-with-r-o-bind-mounts
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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists