]> git.ipfire.org Git - thirdparty/kernel/linux.git/commit
btrfs: avoid unnecessary root node COW during snapshotting
authorFilipe Manana <fdmanana@suse.com>
Wed, 18 Feb 2026 15:07:09 +0000 (15:07 +0000)
committerDavid Sterba <dsterba@suse.com>
Tue, 7 Apr 2026 16:55:58 +0000 (18:55 +0200)
commit1fce8eec9f89e3aaa13ced7c7ca625ab427b1bcc
tree222ca7089207e54bbc63d0c9e45cbd72ace13603
parent13816fd5aa3ca2842be5dba1dcff3b86b174c9c0
btrfs: avoid unnecessary root node COW during snapshotting

There's no need to COW the root node of the subvolume we are snapshotting
because we then call btrfs_copy_root(), which creates a copy of the root
node and sets its generation to the current transaction. So remove this
redundant COW right before calling btrfs_copy_root(), saving one extent
allocation, memory allocation, copying things, etc, and making the code
less confusing. Also rename the extent buffer variable from "old" to
"root_eb" since that name no longer makes any sense after removing the
unnecessary COW operation.

Reviewed-by: Qu Wenruo <wqu@suse.com>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/transaction.c