]> git.baikalelectronics.ru Git - kernel.git/commit
btrfs: do not account twice for inode ref when reserving metadata units
authorFilipe Manana <fdmanana@suse.com>
Mon, 9 May 2022 15:29:14 +0000 (16:29 +0100)
committerDavid Sterba <dsterba@suse.com>
Tue, 17 May 2022 18:15:25 +0000 (20:15 +0200)
commit999c0d1b21fcd1c76bc6976907aa293f8c52017a
tree115fb34be9ccf1a47d004a398996f144bb084aea
parentd7f350114cdc72f74578fd0a326b1bea1dca3f6e
btrfs: do not account twice for inode ref when reserving metadata units

When reserving metadata units for creating an inode, we don't need to
reserve one extra unit for the inode ref item because when creating the
inode, at btrfs_create_new_inode(), we always insert the inode item and
the inode ref item in a single batch (a single btree insert operation,
and both ending up in the same leaf).

As we have accounted already one unit for the inode item, the extra unit
for the inode ref item is superfluous, it only makes us reserve more
metadata than necessary and often adding more reclaim pressure if we are
low on available metadata space.

Reviewed-by: Nikolay Borisov <nborisov@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>
fs/btrfs/inode.c