mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 20:54:10 +08:00
btrfs: cleanup error handling in prepare_to_merge
This probably can't happen even with a corrupt file system, because we would have failed much earlier on than here. However there's no reason we can't just check and bail out as appropriate, so do that and convert the correctness BUG_ON() to an ASSERT(). Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: Josef Bacik <josef@toxicpanda.com> Reviewed-by: David Sterba <dsterba@suse.com> [ add comment ] Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
57a304cfd4
commit
e0b085b0b0
@ -1885,8 +1885,18 @@ again:
|
||||
|
||||
root = btrfs_get_fs_root(fs_info, reloc_root->root_key.offset,
|
||||
false);
|
||||
BUG_ON(IS_ERR(root));
|
||||
BUG_ON(root->reloc_root != reloc_root);
|
||||
if (IS_ERR(root)) {
|
||||
/*
|
||||
* Even if we have an error we need this reloc root
|
||||
* back on our list so we can clean up properly.
|
||||
*/
|
||||
list_add(&reloc_root->root_list, &reloc_roots);
|
||||
btrfs_abort_transaction(trans, (int)PTR_ERR(root));
|
||||
if (!err)
|
||||
err = PTR_ERR(root);
|
||||
break;
|
||||
}
|
||||
ASSERT(root->reloc_root == reloc_root);
|
||||
|
||||
/*
|
||||
* set reference count to 1, so btrfs_recover_relocation
|
||||
|
Loading…
Reference in New Issue
Block a user