I''ve been testing Josef''s btrfs-next master branch using a
test that
loops through creation, manipulation and destruction of snapshots of
kernel git sources.
The version of btrfs-next I''m using was built as of Friday, December
14th, and the top commit is:
Btrfs: don''t take inode delalloc mutex if we''re a free space
inode
committer Josef Bacik <jbacik@fusionio.com>
Fri, 14 Dec 2012 21:57:39 +0000 (16:57 -0500)
commit bd2dd0060cf0ae2a81a7b22e9cc23063796fe09c
I''ve hit a WARN_ON at kernel/lockdep.c:702, which is in the
look_up_lock_class(...) function
/*
* We can walk the hash lockfree, because the hash only
* grows, and we are careful when adding entries to the end:
*/
list_for_each_entry(class, hash_head, hash_entry) {
if (class->key == key) {
/*
* Huh! same key, different name? Did someone trample
* on some memory? We''re most confused.
*/
Line 702> WARN_ON_ONCE(class->name != lock->name);
return class;
}
}
It looks like this occurred during the delayed deletion of one of the
subvolumes.
As far as I can tell, no corruption occurred, the file system passes
btrfsck checks, and seems to be otherwise behaving normally.
I was not on the system at the time this occurred, so I can''t say if
it noticeably delayed the system.
[ 5260.068074] ------------[ cut here ]------------
[ 5260.068092] WARNING: at kernel/lockdep.c:702
__lock_acquire.isra.29+0xa44/0xab9()
[ 5260.068096] Hardware name: OptiPlex 745
[ 5260.068099] Modules linked in: iTCO_wdt iTCO_vendor_support lpc_ich
mfd_core lrw xts gf128mul ablk_helper cryptd aes_x86_64 sha256_generic
btrfs libcrc32c
[ 5260.068124] Pid: 3801, comm: btrfs-cleaner Not tainted 3.7.0-btrfs-next+ #2
[ 5260.068128] Call Trace:
[ 5260.068139] [<ffffffff8103663a>] warn_slowpath_common+0x74/0xa2
[ 5260.068172] [<ffffffffa0062805>] ? btrfs_tree_read_unlock+0x7d/0xa9
[btrfs]
[ 5260.068179] [<ffffffff81036682>] warn_slowpath_null+0x1a/0x1c
[ 5260.068185] [<ffffffff81084813>] __lock_acquire.isra.29+0xa44/0xab9
[ 5260.068210] [<ffffffffa0062483>] ? btrfs_tree_lock+0xf7/0x24c [btrfs]
[ 5260.068217] [<ffffffff81084d8e>] lock_acquire+0x81/0xff
[ 5260.068241] [<ffffffffa0062483>] ? btrfs_tree_lock+0xf7/0x24c [btrfs]
[ 5260.068248] [<ffffffff8183d7b5>] _raw_write_lock+0x31/0x40
[ 5260.068271] [<ffffffffa0062483>] ? btrfs_tree_lock+0xf7/0x24c [btrfs]
[ 5260.068295] [<ffffffffa0062483>] btrfs_tree_lock+0xf7/0x24c [btrfs]
[ 5260.068319] [<ffffffffa004eb1d>] ? find_extent_buffer+0x8f/0xd6
[btrfs]
[ 5260.068343] [<ffffffffa004eaa4>] ? find_extent_buffer+0x16/0xd6
[btrfs]
[ 5260.068360] [<ffffffffa001ef79>] do_walk_down+0xd2/0x4b6 [btrfs]
[ 5260.068378] [<ffffffffa001e1ae>] ? btrfs_block_rsv_check+0x29/0x7d
[btrfs]
[ 5260.068394] [<ffffffffa001e1ae>] ? btrfs_block_rsv_check+0x29/0x7d
[btrfs]
[ 5260.068411] [<ffffffffa001f420>] walk_down_tree+0xc3/0xef [btrfs]
[ 5260.068430] [<ffffffffa0021f4f>] btrfs_drop_snapshot+0x372/0x5c7
[btrfs]
[ 5260.068451] [<ffffffffa0033ccc>]
btrfs_clean_old_snapshots+0xa6/0x13a [btrfs]
[ 5260.068471] [<ffffffffa002b1c0>] ? cleaner_kthread+0x8d/0x102 [btrfs]
[ 5260.068490] [<ffffffffa002b1d4>] cleaner_kthread+0xa1/0x102 [btrfs]
[ 5260.068509] [<ffffffffa002b133>] ? btree_invalidatepage+0x73/0x73
[btrfs]
[ 5260.068515] [<ffffffff81058333>] kthread+0xea/0xef
[ 5260.068522] [<ffffffff81058249>] ? flush_kthread_work+0x19c/0x19c
[ 5260.068528] [<ffffffff8184549c>] ret_from_fork+0x7c/0xb0
[ 5260.068534] [<ffffffff81058249>] ? flush_kthread_work+0x19c/0x19c
[ 5260.068538] ---[ end trace 0caa5c9123c1e741 ]---
--
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