summaryrefslogtreecommitdiffstats
path: root/fs/btrfs
diff options
context:
space:
mode:
authorFilipe Manana <fdmanana@suse.com>2024-04-11 18:33:43 +0100
committerDavid Sterba <dsterba@suse.com>2024-05-07 21:31:03 +0200
commitc0dce8b6a3b257b8492260f2ea41b7056b795295 (patch)
tree0b7fb85d367a89c76f6994aeb7b44844346b0f26 /fs/btrfs
parentafcb80624f5bc2fd2f40dc8a7f4fc2198a68e40f (diff)
downloadlinux-c0dce8b6a3b257b8492260f2ea41b7056b795295.tar.gz
linux-c0dce8b6a3b257b8492260f2ea41b7056b795295.tar.bz2
linux-c0dce8b6a3b257b8492260f2ea41b7056b795295.zip
btrfs: remove use of a temporary list at btrfs_lookup_csums_list()
There's no need to use a temporary list to add the checksums, we can just add them to input list and then on error delete and free any checksums that were added. So simplify and remove the temporary list. Reviewed-by: Qu Wenruo <wqu@suse.com> Signed-off-by: Filipe Manana <fdmanana@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'fs/btrfs')
-rw-r--r--fs/btrfs/file-item.c8
1 files changed, 3 insertions, 5 deletions
diff --git a/fs/btrfs/file-item.c b/fs/btrfs/file-item.c
index 0712a0aa2dd0..c2799325706f 100644
--- a/fs/btrfs/file-item.c
+++ b/fs/btrfs/file-item.c
@@ -470,7 +470,6 @@ int btrfs_lookup_csums_list(struct btrfs_root *root, u64 start, u64 end,
struct extent_buffer *leaf;
struct btrfs_ordered_sum *sums;
struct btrfs_csum_item *item;
- LIST_HEAD(tmplist);
int ret;
ASSERT(IS_ALIGNED(start, fs_info->sectorsize) &&
@@ -572,18 +571,17 @@ int btrfs_lookup_csums_list(struct btrfs_root *root, u64 start, u64 end,
bytes_to_csum_size(fs_info, size));
start += size;
- list_add_tail(&sums->list, &tmplist);
+ list_add_tail(&sums->list, list);
}
path->slots[0]++;
}
ret = 0;
fail:
- while (ret < 0 && !list_empty(&tmplist)) {
- sums = list_entry(tmplist.next, struct btrfs_ordered_sum, list);
+ while (ret < 0 && !list_empty(list)) {
+ sums = list_entry(list->next, struct btrfs_ordered_sum, list);
list_del(&sums->list);
kfree(sums);
}
- list_splice_tail(&tmplist, list);
btrfs_free_path(path);
return ret;