Re: btrfs/mmap lockdep report from 3.2

From: Chris Mason
Date: Tue Jan 17 2012 - 20:07:13 EST


On Wed, Jan 18, 2012 at 12:25:50AM +0100, Jan Kara wrote:
> On Mon 09-01-12 20:44:32, Chris Mason wrote:
> > On Mon, Jan 09, 2012 at 08:03:32PM -0500, Dave Jones wrote:
> > > Just hit this with Linus' tree as of 37cfc3f67db9f2d907f6bfcfae590cdbbef623e8
> > >
> > > Dave
> > >
> > > [ 130.932837] ======================================================
> > > [ 130.933032] [ INFO: possible circular locking dependency detected ]
> > > [ 130.933032] 3.2.0+ #19 Not tainted
> > > [ 130.933032] -------------------------------------------------------
> > > [ 130.933032] firefox/1630 is trying to acquire lock:
> > > [ 130.933032] (&sb->s_type->i_mutex_key#13){+.+.+.}, at: [<ffffffffa011fd5b>] btrfs_page_mkwrite+0x5b/0x310 [btrfs]
> > > [ 130.933032]
> > > [ 130.933032] but task is already holding lock:
> > > [ 130.933032] (&mm->mmap_sem){++++++}, at: [<ffffffff816a38c8>] do_page_fault+0xe8/0x5d0
> > > [ 130.933032]
> > > [ 130.933032] which lock already depends on the new lock.
> >
> > From a lockdep point of view, this is real. But the page_mkwrite
> > code is never called on directories so it is actually safe. We'll fix
> > it up.
> Well, but hitting a fault (and thus acquiring mmap_sem) while holding
> i_mutex can happen also for normal files when we copy data from userspace.
> So I believe the deadlock is real...

Al mentioned this as well. Josef patched it up (its in my pull request)
and I'll send a fix to -stable.

-chris

--
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/