mirror of https://gitee.com/openkylin/linux.git
btrfs: change insert_dirty_subvol to return errors
This will be able to return errors in the future, so change it to return an error and handle the errors appropriately. Signed-off-by: Josef Bacik <josef@toxicpanda.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
2dd8298eb3
commit
ac54da6c37
|
@ -1565,9 +1565,9 @@ static int find_next_key(struct btrfs_path *path, int level,
|
|||
/*
|
||||
* Insert current subvolume into reloc_control::dirty_subvol_roots
|
||||
*/
|
||||
static void insert_dirty_subvol(struct btrfs_trans_handle *trans,
|
||||
struct reloc_control *rc,
|
||||
struct btrfs_root *root)
|
||||
static int insert_dirty_subvol(struct btrfs_trans_handle *trans,
|
||||
struct reloc_control *rc,
|
||||
struct btrfs_root *root)
|
||||
{
|
||||
struct btrfs_root *reloc_root = root->reloc_root;
|
||||
struct btrfs_root_item *reloc_root_item;
|
||||
|
@ -1587,6 +1587,8 @@ static void insert_dirty_subvol(struct btrfs_trans_handle *trans,
|
|||
btrfs_grab_root(root);
|
||||
list_add_tail(&root->reloc_dirty_list, &rc->dirty_subvol_roots);
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int clean_dirty_subvols(struct reloc_control *rc)
|
||||
|
@ -1788,8 +1790,11 @@ static noinline_for_stack int merge_reloc_root(struct reloc_control *rc,
|
|||
out:
|
||||
btrfs_free_path(path);
|
||||
|
||||
if (ret == 0)
|
||||
insert_dirty_subvol(trans, rc, root);
|
||||
if (ret == 0) {
|
||||
ret = insert_dirty_subvol(trans, rc, root);
|
||||
if (ret)
|
||||
btrfs_abort_transaction(trans, ret);
|
||||
}
|
||||
|
||||
if (trans)
|
||||
btrfs_end_transaction_throttle(trans);
|
||||
|
|
Loading…
Reference in New Issue