While testing with balance I ran into the following lockdep issue.
It occurs on the second run.
[16678.879547]
======================================================[16678.972317] [ INFO:
possible circular locking dependency detected ]
[16679.047301] 3.1.0-rc4+ #61
[16679.079644] -------------------------------------------------------
[16679.154630] umount/22597 is trying to acquire lock:
[16679.212972] (&fs_info->cleaner_mutex){+.+.+.}, at:
[<ffffffffa0061041>] btrfs_commit_super+0x21/0xd0 [btrfs]
[16679.331950]
[16679.331950] but task is already holding lock:
[16679.401836] (&type->s_umount_key#34){++++..}, at:
[<ffffffff8118216d>] deactivate_super+0x3d/0x60
[16679.509476]
[16679.509477] which lock already depends on the new lock.
[16679.509478]
[16679.607548]
[16679.607548] the existing dependency chain (in reverse order) is:
[16679.697197]
[16679.697198] -> #1 (&type->s_umount_key#34){++++..}:
[16679.773741] [<ffffffff810cc3d7>] lock_acquire+0x97/0x110
[16679.844668] [<ffffffff8188e609>] down_read+0x39/0x90
[16679.911436] [<ffffffff811a5845>]
writeback_inodes_sb_nr_if_idle+0x35/0x60
[16680.000044] [<ffffffffa004fe9a>]
reserve_metadata_bytes+0x34a/0x540 [btrfs]
[16680.090734] [<ffffffffa0050ff4>]
btrfs_delalloc_reserve_metadata+0xd4/0x150 [btrfs]
[16680.189741] [<ffffffffa00a4895>]
relocate_file_extent_cluster+0x145/0x350 [btrfs]
[16680.286668] [<ffffffffa00a4b53>]
relocate_data_extent+0xb3/0xd0 [btrfs]
[16680.373197] [<ffffffffa00a98db>]
relocate_block_group+0x33b/0x600 [btrfs]
[16680.461909] [<ffffffffa00a9d48>]
btrfs_relocate_block_group+0x1a8/0x2d0 [btrfs]
[16680.556756] [<ffffffffa00894e3>]
btrfs_relocate_chunk+0x83/0x680 [btrfs]
[16680.644325] [<ffffffffa008a898>] btrfs_balance+0x228/0x2a0
[btrfs]
[16680.725652] [<ffffffffa0093888>] btrfs_ioctl+0x848/0xd30 [btrfs]
[16680.804901] [<ffffffff8118fecc>] do_vfs_ioctl+0x9c/0x560
[16680.875828] [<ffffffff81190429>] sys_ioctl+0x99/0xa0
[16680.942612] [<ffffffff818975fb>] system_call_fastpath+0x16/0x1b
[16681.020910]
[16681.020911] -> #0 (&fs_info->cleaner_mutex){+.+.+.}:
[16681.098389] [<ffffffff810cbb23>] __lock_acquire+0x13a3/0x1610
[16681.174516] [<ffffffff810cc3d7>] lock_acquire+0x97/0x110
[16681.245445] [<ffffffff8188ded8>] __mutex_lock_common+0x48/0x3a0
[16681.323652] [<ffffffff8188e2a6>] mutex_lock_nested+0x16/0x20
[16681.398740] [<ffffffffa0061041>] btrfs_commit_super+0x21/0xd0
[btrfs]
[16681.483189] [<ffffffffa0062000>] close_ctree+0x310/0x380 [btrfs]
[16681.562437] [<ffffffffa00425e8>] btrfs_put_super+0x18/0x30
[btrfs]
[16681.643765] [<ffffffff8118094d>]
generic_shutdown_super+0x5d/0xe0
[16681.724054] [<ffffffff81180a61>] kill_anon_super+0x11/0x20
[16681.797060] [<ffffffff81181475>]
deactivate_locked_super+0x45/0x70
[16681.878389] [<ffffffff81182175>] deactivate_super+0x45/0x60
[16681.952437] [<ffffffff8119c4e7>] mntput_no_expire+0xe7/0x130
[16682.027524] [<ffffffff8119c9d3>] sys_umount+0x73/0x3a0
[16682.096373] [<ffffffff818975fb>] system_call_fastpath+0x16/0x1b
[16682.174612]
[16682.174613] other info that might help us debug this:
[16682.174614]
[16682.270676] Possible unsafe locking scenario:
[16682.270676]
[16682.341611] CPU0 CPU1
[16682.395789] ---- ----
[16682.449972] lock(&type->s_umount_key);
[16682.497085]
lock(&fs_info->cleaner_mutex);
[16682.578516] lock(&type->s_umount_key);
[16682.655892] lock(&fs_info->cleaner_mutex);
[16682.707165]
[16682.707165] *** DEADLOCK ***
[16682.707166]
[16682.778197] 1 lock held by umount/22597:
[16682.825101] #0: (&type->s_umount_key#34){++++..}, at:
[<ffffffff8118216d>] deactivate_super+0x3d/0x60
[16682.938046] [16682.938046] stack backtrace:
[16682.990254] Pid: 22597, comm: umount Not tainted 3.1.0-rc4+ #61
[16683.061077] Call Trace:
[16683.090302] [<ffffffff810c8e0e>] print_circular_bug+0x20e/0x2f0
[16683.162167] [<ffffffff810cbb23>] __lock_acquire+0x13a3/0x1610
[16683.231951] [<ffffffff810c631d>] ? trace_hardirqs_off+0xd/0x10
[16683.302780] [<ffffffffa0061041>] ? btrfs_commit_super+0x21/0xd0
[btrfs]
[16683.382958] [<ffffffff810cc3d7>] lock_acquire+0x97/0x110
[16683.447549] [<ffffffffa0061041>] ? btrfs_commit_super+0x21/0xd0
[btrfs]
[16683.527729] [<ffffffff810b9775>] ? sched_clock_cpu+0xc5/0x100
[16683.597509] [<ffffffff8188ded8>] __mutex_lock_common+0x48/0x3a0
[16683.669379] [<ffffffffa0061041>] ? btrfs_commit_super+0x21/0xd0
[btrfs]
[16683.749563] [<ffffffffa004efdc>] ? next_block_group+0x6c/0x80 [btrfs]
[16683.827772] [<ffffffffa0061041>] ? btrfs_commit_super+0x21/0xd0
[btrfs]
[16683.907951] [<ffffffff8188fef6>] ? _raw_spin_unlock+0x26/0x30
[16683.977733] [<ffffffff8188e2a6>] mutex_lock_nested+0x16/0x20
[16684.046485] [<ffffffffa0061041>] btrfs_commit_super+0x21/0xd0 [btrfs]
[16684.124616] [<ffffffffa0062000>] close_ctree+0x310/0x380 [btrfs]
[16684.197608] [<ffffffff811986f7>] ? dispose_list+0x47/0x60
[16684.263218] [<ffffffffa00425e8>] btrfs_put_super+0x18/0x30 [btrfs]
[16684.338199] [<ffffffff8118094d>] generic_shutdown_super+0x5d/0xe0
[16684.412142] [<ffffffff81180a61>] kill_anon_super+0x11/0x20
[16684.478806] [<ffffffff8118216d>] ? deactivate_super+0x3d/0x60
[16684.548609] [<ffffffff81181475>] deactivate_locked_super+0x45/0x70
[16684.623612] [<ffffffff81182175>] deactivate_super+0x45/0x60
[16684.691383] [<ffffffff8119c4e7>] mntput_no_expire+0xe7/0x130
[16684.760127] [<ffffffff8119c9d3>] sys_umount+0x73/0x3a0
[16684.822630] [<ffffffff818975fb>] system_call_fastpath+0x16/0x1b
-Arne
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs"
in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html