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:
parent
3e74317ad7
commit
1daf3540fa
|
@ -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;
|
||||||
|
|
Loading…
Reference in a new issue