From: Jeff Mahoney Date: Tue, 4 Oct 2011 03:22:43 +0000 (-0400) Subject: btrfs: find_and_setup_root error push-up X-Git-Url: https://git.karo-electronics.de/?a=commitdiff_plain;h=200a5c17677e1ee8b78382046f3748c9f5816281;p=mv-sheeva.git 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 --- diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index d52ec115520..155c4e35e53 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c @@ -1197,10 +1197,10 @@ static int __setup_root(u32 nodesize, u32 leafsize, u32 sectorsize, return 0; } -static int find_and_setup_root(struct btrfs_root *tree_root, - struct btrfs_fs_info *fs_info, - u64 objectid, - struct btrfs_root *root) +static int __must_check find_and_setup_root(struct btrfs_root *tree_root, + struct btrfs_fs_info *fs_info, + u64 objectid, + struct btrfs_root *root) { int ret; u32 blocksize; @@ -1213,7 +1213,8 @@ static int find_and_setup_root(struct btrfs_root *tree_root, &root->root_item, &root->root_key); if (ret > 0) return -ENOENT; - BUG_ON(ret); + else if (ret < 0) + return ret; generation = btrfs_root_generation(&root->root_item); blocksize = btrfs_level_size(root, btrfs_root_level(&root->root_item));