btrfs: assert that send is not in progres before root deletion
CC: Miao Xie <miaox@cn.fujitsu.com> CC: Wang Shilong <wangsl.fnst@cn.fujitsu.com> Signed-off-by: David Sterba <dsterba@suse.cz> Signed-off-by: Chris Mason <clm@fb.com>
This commit is contained in:
parent
521e0546c9
commit
61155aa04e
|
@ -2424,6 +2424,7 @@ out_unlock:
|
||||||
shrink_dcache_sb(root->fs_info->sb);
|
shrink_dcache_sb(root->fs_info->sb);
|
||||||
btrfs_invalidate_inodes(dest);
|
btrfs_invalidate_inodes(dest);
|
||||||
d_delete(dentry);
|
d_delete(dentry);
|
||||||
|
ASSERT(dest->send_in_progress == 0);
|
||||||
|
|
||||||
/* the last ref */
|
/* the last ref */
|
||||||
if (dest->cache_inode) {
|
if (dest->cache_inode) {
|
||||||
|
|
|
@ -1984,19 +1984,6 @@ int btrfs_clean_one_deleted_snapshot(struct btrfs_root *root)
|
||||||
}
|
}
|
||||||
root = list_first_entry(&fs_info->dead_roots,
|
root = list_first_entry(&fs_info->dead_roots,
|
||||||
struct btrfs_root, root_list);
|
struct btrfs_root, root_list);
|
||||||
/*
|
|
||||||
* Make sure root is not involved in send,
|
|
||||||
* if we fail with first root, we return
|
|
||||||
* directly rather than continue.
|
|
||||||
*/
|
|
||||||
spin_lock(&root->root_item_lock);
|
|
||||||
if (root->send_in_progress) {
|
|
||||||
spin_unlock(&fs_info->trans_lock);
|
|
||||||
spin_unlock(&root->root_item_lock);
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
spin_unlock(&root->root_item_lock);
|
|
||||||
|
|
||||||
list_del_init(&root->root_list);
|
list_del_init(&root->root_list);
|
||||||
spin_unlock(&fs_info->trans_lock);
|
spin_unlock(&fs_info->trans_lock);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue