[-mm patch] lockdep: unbalance at generic_sync_sb_inodes

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jan 04, 2007 at 10:02:00PM -0800, Andrew Morton wrote:
 
> 	ftp://ftp.kernel.org/pub/linux/kernel/people/akpm/patches/2.6/2.6.20-rc3/2.6.20-rc3-mm1/
Hi,

The reiser4-sb_sync_inodes.patch, which goal is to:
"This patch moves spin_lock/spin_unlock down to sync_sb_inodes."
Only really moved the spin_unlock, thus triggering the following
lockdep message:
[   65.267402] =====================================
[   65.267508] [ BUG: bad unlock balance detected! ]
[   65.267563] -------------------------------------
[   65.267619] swapper/0 is trying to release lock (inode_lock) at:
[   65.267751] [<c018f573>] generic_sync_sb_inodes+0xa6/0x2e8
[   65.267853] but there are no more locks to release!
[   65.267908]
[   65.267909] other info that might help us debug this:
[   65.268014] 1 lock held by swapper/0:
[   65.268068]  #0:  (&type->s_umount_key){--..}, at: [<c0174c18>] alloc_super+0xe8/0x1a5
[   65.268330]
[   65.268330] stack backtrace:
[   65.268433]  [<c010390d>] show_trace_log_lvl+0x1a/0x30
[   65.268528]  [<c0103935>] show_trace+0x12/0x14
[   65.268621]  [<c0103a2f>] dump_stack+0x16/0x18
[   65.268714]  [<c013b2a0>] print_unlock_inbalance_bug+0xce/0xd8
[   65.268811]  [<c013b39b>] lock_release_non_nested+0x6f/0x172
[   65.268907]  [<c013b4d2>] lock_release_nested+0x34/0xdc
[   65.269001]  [<c013b5ce>] __lock_release+0x54/0x56
[   65.269095]  [<c013b809>] lock_release+0x46/0x60
[   65.269188]  [<c03e8660>] _spin_unlock+0x16/0x40
[   65.269284]  [<c018f573>] generic_sync_sb_inodes+0xa6/0x2e8
[   65.269379]  [<c018f7d5>] sync_sb_inodes+0x20/0x23
[   65.269472]  [<c018f937>] sync_inodes_sb+0x82/0x8a
[   65.269566]  [<c0174eab>] __fsync_super+0xd/0x84
[   65.269659]  [<c0174f2d>] fsync_super+0xb/0x19
[   65.269753]  [<c017558a>] do_remount_sb+0x30/0xee
[   65.269846]  [<c0175aa2>] get_sb_single+0x66/0x8b
[   65.269940]  [<c01b45c1>] sysfs_get_sb+0x1d/0x2c
[   65.270036]  [<c0175b49>] vfs_kern_mount+0x82/0xfb
[   65.270130]  [<c0175c19>] kern_mount+0x16/0x1d
[   65.270223]  [<c055ddb6>] sysfs_init+0x57/0xad
[   65.270319]  [<c055c8d2>] mnt_init+0xbf/0x13b
[   65.270412]  [<c055c555>] vfs_caches_init+0x97/0xa7
[   65.270506]  [<c0544bd4>] start_kernel+0x1ca/0x261
[   65.270600]  [<00000000>] 0x0
[   65.270691]  =======================

Regards,
Frederik

Signed-off-by: Frederik Deweerdt <[email protected]>

diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index ea054f7..7e84b93 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -306,6 +306,8 @@ int generic_sync_sb_inodes(struct super_
 	const unsigned long start = jiffies;	/* livelock avoidance */
 	int ret = 0;
 
+	spin_lock(&inode_lock);
+
 	if (!wbc->for_kupdate || list_empty(&sb->s_io))
 		list_splice_init(&sb->s_dirty, &sb->s_io);
 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux