Commit b343047c authored by Filipe Manana's avatar Filipe Manana Committed by David Sterba
Browse files

btrfs: avoid path allocations when dropping extents during log replay



We can avoid a path allocation in the btrfs_drop_extents() calls we have
at replay_one_extent() and replay_one_buffer() by passing the path we
already have in those contextes as it's unused by the time they call
btrfs_drop_extents().

Signed-off-by: default avatarFilipe Manana <fdmanana@suse.com>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 29d9c5e0
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -738,6 +738,7 @@ static noinline int replay_one_extent(struct walk_control *wc, struct btrfs_path
	drop_args.start = start;
	drop_args.end = extent_end;
	drop_args.drop_cache = true;
	drop_args.path = path;
	ret = btrfs_drop_extents(trans, root, inode, &drop_args);
	if (ret) {
		btrfs_abort_transaction(trans, ret);
@@ -2676,6 +2677,7 @@ static int replay_one_buffer(struct extent_buffer *eb,
				drop_args.start = from;
				drop_args.end = (u64)-1;
				drop_args.drop_cache = true;
				drop_args.path = path;
				ret = btrfs_drop_extents(trans, root, inode,  &drop_args);
				if (ret) {
					btrfs_abort_transaction(trans, ret);