Re: [cgroup or VFS ?] INFO: possible recursive locking detected

From: Al Viro
Date: Mon Feb 09 2009 - 06:23:35 EST


On Thu, Jan 08, 2009 at 11:45:43AM +0800, Li Zefan wrote:
> Hi Al Viro,
>
> I hacked into the kernel with the patch below (I think It's ok for me
> to comment out bdev->bd_mount_sem for testing):

> And ran 2 threads:
> for ((; ;)) # thread 1
> {
> mount -t ext3 /dev/sda9 /mnt1
> umount /mnt1
> }
>
> for ((; ;)) # thread 2
> {
> mount -t ext3 /dev/sda9 /mnt2
> umount /mnt2
> }
>
> And I got the same lockdep warning immediately, so I think it's
> VFS's issue.

It's a lockdep issue, actually. It _is_ a false positive; we could get rid
of that if we took destroy_super(s); just before grab_super(), but I really
do not believe that there's any point.

Frankly, I'd rather see if there's any way to teach lockdep that this instance
of lock is getting initialized into "one writer" state and that yes, we know
that it's not visible to anyone, so doing that is safe, TYVM, even though
we are under spinlock. Then take that sucker to just before set().

In any case, I really do not believe that it might have anything to do with
the WARN_ON() from another thread...

Comments?
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/