|
@@ -5463,7 +5463,8 @@ static int alloc_reserved_file_extent(struct btrfs_trans_handle *trans,
|
|
size = sizeof(*extent_item) + btrfs_extent_inline_ref_size(type);
|
|
size = sizeof(*extent_item) + btrfs_extent_inline_ref_size(type);
|
|
|
|
|
|
path = btrfs_alloc_path();
|
|
path = btrfs_alloc_path();
|
|
- BUG_ON(!path);
|
|
|
|
|
|
+ if (!path)
|
|
|
|
+ return -ENOMEM;
|
|
|
|
|
|
path->leave_spinning = 1;
|
|
path->leave_spinning = 1;
|
|
ret = btrfs_insert_empty_item(trans, fs_info->extent_root, path,
|
|
ret = btrfs_insert_empty_item(trans, fs_info->extent_root, path,
|
|
@@ -6457,10 +6458,14 @@ int btrfs_drop_subtree(struct btrfs_trans_handle *trans,
|
|
BUG_ON(root->root_key.objectid != BTRFS_TREE_RELOC_OBJECTID);
|
|
BUG_ON(root->root_key.objectid != BTRFS_TREE_RELOC_OBJECTID);
|
|
|
|
|
|
path = btrfs_alloc_path();
|
|
path = btrfs_alloc_path();
|
|
- BUG_ON(!path);
|
|
|
|
|
|
+ if (!path)
|
|
|
|
+ return -ENOMEM;
|
|
|
|
|
|
wc = kzalloc(sizeof(*wc), GFP_NOFS);
|
|
wc = kzalloc(sizeof(*wc), GFP_NOFS);
|
|
- BUG_ON(!wc);
|
|
|
|
|
|
+ if (!wc) {
|
|
|
|
+ btrfs_free_path(path);
|
|
|
|
+ return -ENOMEM;
|
|
|
|
+ }
|
|
|
|
|
|
btrfs_assert_tree_locked(parent);
|
|
btrfs_assert_tree_locked(parent);
|
|
parent_level = btrfs_header_level(parent);
|
|
parent_level = btrfs_header_level(parent);
|
|
@@ -6918,7 +6923,11 @@ static noinline int get_new_locations(struct inode *reloc_inode,
|
|
}
|
|
}
|
|
|
|
|
|
path = btrfs_alloc_path();
|
|
path = btrfs_alloc_path();
|
|
- BUG_ON(!path);
|
|
|
|
|
|
+ if (!path) {
|
|
|
|
+ if (exts != *extents)
|
|
|
|
+ kfree(exts);
|
|
|
|
+ return -ENOMEM;
|
|
|
|
+ }
|
|
|
|
|
|
cur_pos = extent_key->objectid - offset;
|
|
cur_pos = extent_key->objectid - offset;
|
|
last_byte = extent_key->objectid + extent_key->offset;
|
|
last_byte = extent_key->objectid + extent_key->offset;
|
|
@@ -7442,7 +7451,8 @@ static noinline int replace_extents_in_leaf(struct btrfs_trans_handle *trans,
|
|
int ret;
|
|
int ret;
|
|
|
|
|
|
new_extent = kmalloc(sizeof(*new_extent), GFP_NOFS);
|
|
new_extent = kmalloc(sizeof(*new_extent), GFP_NOFS);
|
|
- BUG_ON(!new_extent);
|
|
|
|
|
|
+ if (!new_extent)
|
|
|
|
+ return -ENOMEM;
|
|
|
|
|
|
ref = btrfs_lookup_leaf_ref(root, leaf->start);
|
|
ref = btrfs_lookup_leaf_ref(root, leaf->start);
|
|
BUG_ON(!ref);
|
|
BUG_ON(!ref);
|
|
@@ -7647,7 +7657,8 @@ static noinline int init_reloc_tree(struct btrfs_trans_handle *trans,
|
|
return 0;
|
|
return 0;
|
|
|
|
|
|
root_item = kmalloc(sizeof(*root_item), GFP_NOFS);
|
|
root_item = kmalloc(sizeof(*root_item), GFP_NOFS);
|
|
- BUG_ON(!root_item);
|
|
|
|
|
|
+ if (!root_item)
|
|
|
|
+ return -ENOMEM;
|
|
|
|
|
|
ret = btrfs_copy_root(trans, root, root->commit_root,
|
|
ret = btrfs_copy_root(trans, root, root->commit_root,
|
|
&eb, BTRFS_TREE_RELOC_OBJECTID);
|
|
&eb, BTRFS_TREE_RELOC_OBJECTID);
|
|
@@ -7673,7 +7684,7 @@ static noinline int init_reloc_tree(struct btrfs_trans_handle *trans,
|
|
|
|
|
|
reloc_root = btrfs_read_fs_root_no_radix(root->fs_info->tree_root,
|
|
reloc_root = btrfs_read_fs_root_no_radix(root->fs_info->tree_root,
|
|
&root_key);
|
|
&root_key);
|
|
- BUG_ON(!reloc_root);
|
|
|
|
|
|
+ BUG_ON(IS_ERR(reloc_root));
|
|
reloc_root->last_trans = trans->transid;
|
|
reloc_root->last_trans = trans->transid;
|
|
reloc_root->commit_root = NULL;
|
|
reloc_root->commit_root = NULL;
|
|
reloc_root->ref_tree = &root->fs_info->reloc_ref_tree;
|
|
reloc_root->ref_tree = &root->fs_info->reloc_ref_tree;
|