btrfs: avoid unnecessary memory allocation and copy at overwrite_item()
authorFilipe Manana <fdmanana@suse.com>
Thu, 13 Mar 2025 14:00:52 +0000 (14:00 +0000)
committerDavid Sterba <dsterba@suse.com>
Tue, 18 Mar 2025 19:35:54 +0000 (20:35 +0100)
commite48264e601b39df3c8c75f3e7ae896d15cbbebcc
tree419deff31dca4b5f5095a9c86462677e363476b7
parent9db9c7dd5b4e1d3205137a094805980082c37716
btrfs: avoid unnecessary memory allocation and copy at overwrite_item()

There's no need to allocate memory and copy from both the destination and
source extent buffers to compare if the items are equal, we can instead
use memcmp_extent_buffer() which allows to do only one memory allocation
and copy instead of two.

So use memcmp_extent_buffer() instead of memcmp(), allowing us to avoid
one memory allocation, which can fail or be slow while under memory heavy
pressure, avoid the memory copying and reducing code.

Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/tree-log.c