aboutsummaryrefslogtreecommitdiffstats
path: root/fs/btrfs/disk-io.c
diff options
context:
space:
mode:
authorJeff Mahoney <jeffm@suse.com>2011-10-03 23:22:43 -0400
committerDavid Sterba <dsterba@suse.cz>2012-03-21 20:45:32 -0400
commit200a5c17677e1ee8b78382046f3748c9f5816281 (patch)
treeaca0964b50af798d919ca3b710cfcd9c69498170 /fs/btrfs/disk-io.c
parent6763af84a69f23c1c79f00720982e74fcff4d1f3 (diff)
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>
Diffstat (limited to 'fs/btrfs/disk-io.c')
-rw-r--r--fs/btrfs/disk-io.c11
1 files changed, 6 insertions, 5 deletions
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,
1197 return 0; 1197 return 0;
1198} 1198}
1199 1199
1200static int find_and_setup_root(struct btrfs_root *tree_root, 1200static int __must_check find_and_setup_root(struct btrfs_root *tree_root,
1201 struct btrfs_fs_info *fs_info, 1201 struct btrfs_fs_info *fs_info,
1202 u64 objectid, 1202 u64 objectid,
1203 struct btrfs_root *root) 1203 struct btrfs_root *root)
1204{ 1204{
1205 int ret; 1205 int ret;
1206 u32 blocksize; 1206 u32 blocksize;
@@ -1213,7 +1213,8 @@ static int find_and_setup_root(struct btrfs_root *tree_root,
1213 &root->root_item, &root->root_key); 1213 &root->root_item, &root->root_key);
1214 if (ret > 0) 1214 if (ret > 0)
1215 return -ENOENT; 1215 return -ENOENT;
1216 BUG_ON(ret); 1216 else if (ret < 0)
1217 return ret;
1217 1218
1218 generation = btrfs_root_generation(&root->root_item); 1219 generation = btrfs_root_generation(&root->root_item);
1219 blocksize = btrfs_level_size(root, btrfs_root_level(&root->root_item)); 1220 blocksize = btrfs_level_size(root, btrfs_root_level(&root->root_item));