Btrfs: Prevent root_list corruption

I was seeing root_list corruption on unmount during fs resize in 3.4-rc4; add
correct locking to address this.

Signed-off-by: Daniel J Blueman <daniel@quora.org>
Signed-off-by: Chris Mason <chris.mason@oracle.com>
This commit is contained in:
Daniel J Blueman 2012-04-27 12:41:46 -04:00 committed by Chris Mason
parent 3e74317ad7
commit 1daf3540fa
1 changed files with 2 additions and 0 deletions

View File

@ -1279,7 +1279,9 @@ static int __update_reloc_root(struct btrfs_root *root, int del)
if (rb_node) if (rb_node)
backref_tree_panic(rb_node, -EEXIST, node->bytenr); backref_tree_panic(rb_node, -EEXIST, node->bytenr);
} else { } else {
spin_lock(&root->fs_info->trans_lock);
list_del_init(&root->root_list); list_del_init(&root->root_list);
spin_unlock(&root->fs_info->trans_lock);
kfree(node); kfree(node);
} }
return 0; return 0;