From: Filipe Manana Date: Wed, 23 Mar 2022 16:19:27 +0000 (+0000) Subject: btrfs: free path at can_nocow_extent() before checking for checksum items X-Git-Tag: v6.6.17~7062^2~137 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=c1a548db25c3bafed0b8519cf2f41c6e44bc5dc4;p=platform%2Fkernel%2Flinux-rpi.git btrfs: free path at can_nocow_extent() before checking for checksum items When we look for checksum items, through csum_exist_in_range(), at can_nocow_extent(), we no longer need the path that we have previously allocated. Through csum_exist_in_range() -> btrfs_lookup_csums_range(), we also end up allocating a path, so we are adding unnecessary extra memory usage. So free the path before calling csum_exist_in_range(). Signed-off-by: Filipe Manana Reviewed-by: David Sterba Signed-off-by: David Sterba --- diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index ca47f7c..b7a7a94 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -7230,6 +7230,14 @@ noinline int can_nocow_extent(struct inode *inode, u64 offset, u64 *len, } /* + * We don't need the path anymore, plus through the csum_exist_in_range() + * call below we will end up allocating another path. So free the path + * to avoid unnecessary extra memory usage. + */ + btrfs_free_path(path); + path = NULL; + + /* * adjust disk_bytenr and num_bytes to cover just the bytes * in this extent we are about to write. If there * are any csums in that range we have to cow in order