Btrfs: insert orphan roots into fs radix tree
Now we don't drop all the deleted snapshots/subvolumes before the space balance. It means we have to relocate the space which is held by the dead snapshots/subvolumes. So we must into them into fs radix tree, or we would forget to commit the change of them when doing transaction commit, and it would corrupt the metadata. Signed-off-by: Miao Xie <miaox@cn.fujitsu.com> Signed-off-by: Josef Bacik <jbacik@fusionio.com> Signed-off-by: Chris Mason <chris.mason@fusionio.com>
This commit is contained in:
Родитель
7bf811a595
Коммит
14927d9546
|
@ -299,11 +299,6 @@ int btrfs_find_orphan_roots(struct btrfs_root *tree_root)
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (btrfs_root_refs(&root->root_item) == 0) {
|
|
||||||
btrfs_add_dead_root(root);
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
err = btrfs_init_fs_root(root);
|
err = btrfs_init_fs_root(root);
|
||||||
if (err) {
|
if (err) {
|
||||||
btrfs_free_fs_root(root);
|
btrfs_free_fs_root(root);
|
||||||
|
@ -318,6 +313,9 @@ int btrfs_find_orphan_roots(struct btrfs_root *tree_root)
|
||||||
btrfs_free_fs_root(root);
|
btrfs_free_fs_root(root);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (btrfs_root_refs(&root->root_item) == 0)
|
||||||
|
btrfs_add_dead_root(root);
|
||||||
}
|
}
|
||||||
|
|
||||||
btrfs_free_path(path);
|
btrfs_free_path(path);
|
||||||
|
|
Загрузка…
Ссылка в новой задаче