On Sun, 2006-06-04 at 19:44 +0400, Evgeniy Dushistov wrote: > For some reasons my post about "possible deadlocks" > didn't appear in jfs-discussion@xxxxxxxxxxxxxxxxxxxxxx Nothings showing up there. I guess it's a sourceforge problem. > >==================================== > >[ BUG: possible deadlock detected! ] > >------------------------------------ > >mount/5587 is trying to acquire lock: > > (&jfs_ip->commit_mutex){--..}, at: [<c02f7096>] mutex_lock+0x12/0x15 > > > >but task is already holding lock: > > (&jfs_ip->commit_mutex){--..}, at: [<c02f7096>] mutex_lock+0x12/0x15 > > > >which could potentially lead to deadlocks! > > > >other info that might help us debug this: > >2 locks held by mount/5587: > > #0: (&inode->i_mutex){--..}, at: [<c02f7096>] mutex_lock+0x12/0x15 > > #1: (&jfs_ip->commit_mutex){--..}, at: [<c02f7096>] mutex_lock+0x12/0x15 > > > >stack backtrace: > > [<c0103095>] show_trace+0x16/0x19 > > [<c0103562>] dump_stack+0x1a/0x1f > > [<c012ddd7>] __lockdep_acquire+0x6c6/0x907 > > [<c012e063>] lockdep_acquire+0x4b/0x63 > > [<c02f6f0c>] __mutex_lock_slowpath+0xa4/0x21c > > [<c02f7096>] mutex_lock+0x12/0x15 > > [<c01b99be>] jfs_create+0x90/0x2b8 > > [<c0161016>] vfs_create+0x91/0xda > > [<c0163939>] open_namei+0x15a/0x5b0 > > [<c015326c>] do_filp_open+0x22/0x39 > > [<c01541a8>] do_sys_open+0x40/0xbc > > [<c015424d>] sys_open+0x13/0x15 > > [<c02f875d>] sysenter_past_esp+0x56/0x8d > > I should add that this happened during boot, when root jfs > file system become from ro->rw > > I look at code, and see that > 1)locks wasn't release in the opposite order in which > they were taken Why does this matter? > 2)in jfs_rename we lock new_ip, and in "error path" we didn't unlock it Good catch! This isn't related to the warning, but it's potentially worse. > 3)I see strange expression: "! !" I hadn't noticed this. It was introduced when changing from semaphores to mutexes. > > May be this worth to fix? 2 & 3 for sure. I don't see the need for fixing 1. I think the warning needs to be fixed by introducing mutex_lock_nested in some places. I'll take a look at it. Thanks, Shaggy -- David Kleikamp IBM Linux Technology Center - To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html