Merge branch 'alloc_path' of git://git.kernel.org/pub/scm/linux/kernel/git/mfasheh/btrfs-error-handling into for-linus
This commit is contained in:
@@ -663,7 +663,9 @@ int btrfs_lookup_extent(struct btrfs_root *root, u64 start, u64 len)
|
||||
struct btrfs_path *path;
|
||||
|
||||
path = btrfs_alloc_path();
|
||||
BUG_ON(!path);
|
||||
if (!path)
|
||||
return -ENOMEM;
|
||||
|
||||
key.objectid = start;
|
||||
key.offset = len;
|
||||
btrfs_set_key_type(&key, BTRFS_EXTENT_ITEM_KEY);
|
||||
@@ -3272,6 +3274,9 @@ again:
|
||||
}
|
||||
|
||||
ret = btrfs_alloc_chunk(trans, extent_root, flags);
|
||||
if (ret < 0 && ret != -ENOSPC)
|
||||
goto out;
|
||||
|
||||
spin_lock(&space_info->lock);
|
||||
if (ret)
|
||||
space_info->full = 1;
|
||||
@@ -3281,6 +3286,7 @@ again:
|
||||
space_info->force_alloc = CHUNK_ALLOC_NO_FORCE;
|
||||
space_info->chunk_alloc = 0;
|
||||
spin_unlock(&space_info->lock);
|
||||
out:
|
||||
mutex_unlock(&extent_root->fs_info->chunk_mutex);
|
||||
return ret;
|
||||
}
|
||||
@@ -5501,7 +5507,8 @@ static int alloc_reserved_tree_block(struct btrfs_trans_handle *trans,
|
||||
u32 size = sizeof(*extent_item) + sizeof(*block_info) + sizeof(*iref);
|
||||
|
||||
path = btrfs_alloc_path();
|
||||
BUG_ON(!path);
|
||||
if (!path)
|
||||
return -ENOMEM;
|
||||
|
||||
path->leave_spinning = 1;
|
||||
ret = btrfs_insert_empty_item(trans, fs_info->extent_root, path,
|
||||
@@ -6272,10 +6279,14 @@ int btrfs_drop_snapshot(struct btrfs_root *root,
|
||||
int level;
|
||||
|
||||
path = btrfs_alloc_path();
|
||||
BUG_ON(!path);
|
||||
if (!path)
|
||||
return -ENOMEM;
|
||||
|
||||
wc = kzalloc(sizeof(*wc), GFP_NOFS);
|
||||
BUG_ON(!wc);
|
||||
if (!wc) {
|
||||
btrfs_free_path(path);
|
||||
return -ENOMEM;
|
||||
}
|
||||
|
||||
trans = btrfs_start_transaction(tree_root, 0);
|
||||
BUG_ON(IS_ERR(trans));
|
||||
@@ -7183,7 +7194,10 @@ int btrfs_remove_block_group(struct btrfs_trans_handle *trans,
|
||||
spin_unlock(&cluster->refill_lock);
|
||||
|
||||
path = btrfs_alloc_path();
|
||||
BUG_ON(!path);
|
||||
if (!path) {
|
||||
ret = -ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
|
||||
inode = lookup_free_space_inode(root, block_group, path);
|
||||
if (!IS_ERR(inode)) {
|
||||
|
||||
Reference in New Issue
Block a user