btrfs: find_and_setup_root error push-up
find_and_setup_root BUGs when it encounters an error from btrfs_find_last_root, which can occur if a path can't be allocated. This patch pushes it up to its callers where it is already handled. Signed-off-by: Jeff Mahoney <jeffm@suse.com>
This commit is contained in:
parent
6763af84a6
commit
200a5c1767
@ -1197,10 +1197,10 @@ static int __setup_root(u32 nodesize, u32 leafsize, u32 sectorsize,
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int find_and_setup_root(struct btrfs_root *tree_root,
|
static int __must_check find_and_setup_root(struct btrfs_root *tree_root,
|
||||||
struct btrfs_fs_info *fs_info,
|
struct btrfs_fs_info *fs_info,
|
||||||
u64 objectid,
|
u64 objectid,
|
||||||
struct btrfs_root *root)
|
struct btrfs_root *root)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
u32 blocksize;
|
u32 blocksize;
|
||||||
@ -1213,7 +1213,8 @@ static int find_and_setup_root(struct btrfs_root *tree_root,
|
|||||||
&root->root_item, &root->root_key);
|
&root->root_item, &root->root_key);
|
||||||
if (ret > 0)
|
if (ret > 0)
|
||||||
return -ENOENT;
|
return -ENOENT;
|
||||||
BUG_ON(ret);
|
else if (ret < 0)
|
||||||
|
return ret;
|
||||||
|
|
||||||
generation = btrfs_root_generation(&root->root_item);
|
generation = btrfs_root_generation(&root->root_item);
|
||||||
blocksize = btrfs_level_size(root, btrfs_root_level(&root->root_item));
|
blocksize = btrfs_level_size(root, btrfs_root_level(&root->root_item));
|
||||||
|
Loading…
Reference in New Issue
Block a user