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
* 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
* 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
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.