diff options
| author | Josef Bacik <josef@toxicpanda.com> | 2021-03-12 15:25:18 -0500 | 
|---|---|---|
| committer | David Sterba <dsterba@suse.com> | 2021-04-19 17:25:21 +0200 | 
| commit | 7934133fae5ea08346b224ecabffdbf14dd076c6 (patch) | |
| tree | bdc361a85b71035db1baeb4aaa557a9119aebe81 | |
| parent | ac54da6c37f1eb45218e107f9c924e4d7f054e5b (diff) | |
btrfs: handle btrfs_update_reloc_root failure in insert_dirty_subvol
btrfs_update_reloc_root will will return errors in the future, so handle
the error properly in insert_dirty_subvol.
Signed-off-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
| -rw-r--r-- | fs/btrfs/relocation.c | 5 | 
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c index eb29d9f0ae38..69f170b47a0e 100644 --- a/fs/btrfs/relocation.c +++ b/fs/btrfs/relocation.c @@ -1571,6 +1571,7 @@ static int insert_dirty_subvol(struct btrfs_trans_handle *trans,  {  	struct btrfs_root *reloc_root = root->reloc_root;  	struct btrfs_root_item *reloc_root_item; +	int ret;  	/* @root must be a subvolume tree root with a valid reloc tree */  	ASSERT(root->root_key.objectid != BTRFS_TREE_RELOC_OBJECTID); @@ -1581,7 +1582,9 @@ static int insert_dirty_subvol(struct btrfs_trans_handle *trans,  		sizeof(reloc_root_item->drop_progress));  	btrfs_set_root_drop_level(reloc_root_item, 0);  	btrfs_set_root_refs(reloc_root_item, 0); -	btrfs_update_reloc_root(trans, root); +	ret = btrfs_update_reloc_root(trans, root); +	if (ret) +		return ret;  	if (list_empty(&root->reloc_dirty_list)) {  		btrfs_grab_root(root);  | 
