[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20120118010652.GM3658@shiny>
Date: Tue, 17 Jan 2012 20:06:52 -0500
From: Chris Mason <chris.mason@...cle.com>
To: Jan Kara <jack@...e.cz>
Cc: Dave Jones <davej@...hat.com>,
Linux Kernel <linux-kernel@...r.kernel.org>
Subject: Re: btrfs/mmap lockdep report from 3.2
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@...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