OSDN Git Service

btrfs: avoid extra memory allocation when copying free space cache
authorFilipe Manana <fdmanana@suse.com>
Thu, 4 May 2023 11:04:19 +0000 (12:04 +0100)
committerDavid Sterba <dsterba@suse.com>
Mon, 19 Jun 2023 11:59:23 +0000 (13:59 +0200)
commitfbb2e654d898f141a2cde37074535d9cec10b03a
tree6bf05a0d815f99a72620ca06a8b805c3ff9a48b2
parent12df6a622ed8f0cd14470c6d76fe1b85f621f230
btrfs: avoid extra memory allocation when copying free space cache

At copy_free_space_cache(), we add a new entry to the block group's ctl
before we free the entry from the temporary ctl. Adding a new entry
requires the allocation of a new struct btrfs_free_space, so we can
avoid a temporary extra allocation by freeing the entry from the
temporary ctl before we add a new entry to the main ctl, which possibly
also reduces the chances for a memory allocation failure in case of very
high memory pressure. So just do that.

Reviewed-by: Anand Jain <anand.jain@oracle.com>
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/free-space-cache.c