Bug 9483

Summary: circular locking dependency detected
Product: File System Reporter: Rafael J. Wysocki (rjwysocki)
Component: ext4Assignee: fs_ext4 (fs_ext4)
Status: DEFERRED WILL_FIX_LATER    
Severity: normal CC: dhaval
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.24-rc3 Subsystem:
Regression: Yes Bisected commit-id:
Bug Depends on:    
Bug Blocks: 9243    

Description Rafael J. Wysocki 2007-12-01 12:44:39 UTC
Subject         : circular locking dependency detected
Submitter       : "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
References      : http://lkml.org/lkml/2007/11/30/22
Comment 1 Ingo Molnar 2007-12-04 13:26:03 UTC
* Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> wrote:

> =======================================================
> [ INFO: possible circular locking dependency detected ]
> 2.6.24-rc3 #6
> -------------------------------------------------------
> bash/2294 is trying to acquire lock:
> (&journal->j_list_lock){--..}, at: [<c01eee2f>]
> journal_try_to_free_buffers+0x76/0x10c
> 
> but task is already holding lock:
> (inode_lock){--..}, at: [<c01864b6>] drop_pagecache+0x48/0xd8
> 
> which lock already depends on the new lock.

Andrew, drop_pagecache() is root-only and it has some known deadlock, 
right?

	Ingo
Comment 2 Ingo Molnar 2007-12-04 13:40:15 UTC
* Andrew Morton <akpm@linux-foundation.org> wrote:

> On Tue, 4 Dec 2007 22:25:18 +0100
> Ingo Molnar <mingo@elte.hu> wrote:
> 
> > 
> > * Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> wrote:
> > 
> > > =======================================================
> > > [ INFO: possible circular locking dependency detected ]
> > > 2.6.24-rc3 #6
> > > -------------------------------------------------------
> > > bash/2294 is trying to acquire lock:
> > > (&journal->j_list_lock){--..}, at: [<c01eee2f>]
> journal_try_to_free_buffers+0x76/0x10c
> > > 
> > > but task is already holding lock:
> > > (inode_lock){--..}, at: [<c01864b6>] drop_pagecache+0x48/0xd8
> > > 
> > > which lock already depends on the new lock.
> > 
> > Andrew, drop_pagecache() is root-only and it has some known deadlock, 
> > right?
> > 
> 
> yup.  It takes inode_lock at too high a level so it can walk the 
> per-sb inode lists.

Is there anyone genious enough to fix this? :-/

	Ingo
Comment 3 Anonymous Emailer 2007-12-04 13:41:15 UTC
Reply-To: akpm@linux-foundation.org

On Tue, 4 Dec 2007 22:25:18 +0100
Ingo Molnar <mingo@elte.hu> wrote:

> 
> * Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> wrote:
> 
> > =======================================================
> > [ INFO: possible circular locking dependency detected ]
> > 2.6.24-rc3 #6
> > -------------------------------------------------------
> > bash/2294 is trying to acquire lock:
> > (&journal->j_list_lock){--..}, at: [<c01eee2f>]
> journal_try_to_free_buffers+0x76/0x10c
> > 
> > but task is already holding lock:
> > (inode_lock){--..}, at: [<c01864b6>] drop_pagecache+0x48/0xd8
> > 
> > which lock already depends on the new lock.
> 
> Andrew, drop_pagecache() is root-only and it has some known deadlock, 
> right?
> 

yup.   It takes inode_lock at too high a level so it can walk the per-sb inode
lists.