btrfs: hold a ref on the root in prepare_to_merge

We look up the reloc roots corresponding root, we need to hold a ref on
that root.

Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Josef Bacik 2020-01-24 09:32:39 -05:00 коммит произвёл David Sterba
Родитель 0b530bc5e1
Коммит db2c2ca2db
1 изменённых файлов: 2 добавлений и 0 удалений

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

@ -2521,6 +2521,7 @@ again:
root = read_fs_root(fs_info, reloc_root->root_key.offset);
BUG_ON(IS_ERR(root));
BUG_ON(!btrfs_grab_fs_root(root));
BUG_ON(root->reloc_root != reloc_root);
/*
@ -2532,6 +2533,7 @@ again:
btrfs_update_reloc_root(trans, root);
list_add(&reloc_root->root_list, &reloc_roots);
btrfs_put_fs_root(root);
}
list_splice(&reloc_roots, &rc->reloc_roots);