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:
Miao Xie 2013-09-25 21:47:43 +08:00 коммит произвёл Chris Mason
Родитель 7bf811a595
Коммит 14927d9546
1 изменённых файлов: 3 добавлений и 5 удалений

Просмотреть файл

@ -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);