btrfs: remove duplicate free_async_extent_pages() on reservation error
authorGoldwyn Rodrigues <rgoldwyn@suse.de>
Fri, 14 Jul 2023 15:18:19 +0000 (10:18 -0500)
committerDavid Sterba <dsterba@suse.com>
Mon, 21 Aug 2023 12:52:13 +0000 (14:52 +0200)
While performing compressed writes, if the extent reservation fails, the
async extent pages are first freed in the error check for return value
ret, and then again at out_free label.

Remove the first call to free_async_extent_pages().

Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Goldwyn Rodrigues <rgoldwyn@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/inode.c

index aa090b0..5508597 100644 (file)
@@ -1217,7 +1217,6 @@ static int submit_one_async_extent(struct btrfs_inode *inode,
                                   async_extent->compressed_size,
                                   0, *alloc_hint, &ins, 1, 1);
        if (ret) {
-               free_async_extent_pages(async_extent);
                /*
                 * Here we used to try again by going back to non-compressed
                 * path for ENOSPC.  But we can't reserve space even for