Commit 44366af7 authored by Mark Harmstone's avatar Mark Harmstone Committed by David Sterba
Browse files

btrfs: don't clobber errors in add_remap_tree_entries()



In add_remap_tree_entries(), we only process a certain number of entries
at a time, meaning we may need to loop.

But because we weren't checking the return value of btrfs_insert_empty_items()
within the loop, this meant that if the last iteration of the loop
succeeded but a previous iteration failed, we were erroneously returning
0.

Fix this by breaking the loop early if btrfs_insert_empty_items() fails.

Fixes: b56f3556 ("btrfs: handle setting up relocation of block group with remap-tree")
Signed-off-by: default avatarMark Harmstone <mark@harmstone.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 41e706c0
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -3876,7 +3876,7 @@ static int add_remap_tree_entries(struct btrfs_trans_handle *trans, struct btrfs
		ret = btrfs_insert_empty_items(trans, fs_info->remap_root, path, &batch);
		btrfs_release_path(path);

		if (num_entries <= max_items)
		if (ret || num_entries <= max_items)
			break;

		num_entries -= max_items;