]> git.ipfire.org Git - thirdparty/linux.git/commit
btrfs: avoid logging tree mod log elements for irrelevant extent buffers
authorFilipe Manana <fdmanana@suse.com>
Tue, 1 Jul 2025 21:20:19 +0000 (22:20 +0100)
committerDavid Sterba <dsterba@suse.com>
Mon, 21 Jul 2025 22:09:20 +0000 (00:09 +0200)
commitd30b236a3e706b1225accaff686d56d3bd4e8007
tree502943d6fa33dcd59bffd1cef1902cd2b3869881
parent9e9ff875e4174be939371667d2cc81244e31232f
btrfs: avoid logging tree mod log elements for irrelevant extent buffers

We are logging tree mod log operations for extent buffers from any tree
but we only need to log for the extent tree and subvolume tree, since
the tree mod log is used to get a consistent view, within a transaction,
of extents and their backrefs. So it's pointless to log operations for
trees such as the csum tree, free space tree, root tree, chunk tree,
log trees, data relocation tree, etc, as these trees are not used for
backref walking and all tree mod log users are about backref walking.

So skip extent buffers that don't belong neither to the extent nor to
subvolume trees. This avoids unnecessary memory allocations and having a
larger tree mod log rbtree with nodes that are never needed.

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