]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
btrfs: use BTRFS_PATH_AUTO_FREE in btrfs_lookup_bio_sums()
authorDavid Sterba <dsterba@suse.com>
Mon, 24 Feb 2025 08:15:17 +0000 (09:15 +0100)
committerDavid Sterba <dsterba@suse.com>
Tue, 18 Mar 2025 19:35:48 +0000 (20:35 +0100)
This is the trivial pattern for path auto free, initialize at the
beginning and free at the end.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/file-item.c

index 2d2244b325061dad6f72a986fa340579334742ee..344b4db487a0c6208680eac035705d7e65ccc991 100644 (file)
@@ -341,7 +341,7 @@ blk_status_t btrfs_lookup_bio_sums(struct btrfs_bio *bbio)
        struct btrfs_inode *inode = bbio->inode;
        struct btrfs_fs_info *fs_info = inode->root->fs_info;
        struct bio *bio = &bbio->bio;
-       struct btrfs_path *path;
+       BTRFS_PATH_AUTO_FREE(path);
        const u32 sectorsize = fs_info->sectorsize;
        const u32 csum_size = fs_info->csum_size;
        u32 orig_len = bio->bi_iter.bi_size;
@@ -373,10 +373,8 @@ blk_status_t btrfs_lookup_bio_sums(struct btrfs_bio *bbio)
 
        if (nblocks * csum_size > BTRFS_BIO_INLINE_CSUM_SIZE) {
                bbio->csum = kmalloc_array(nblocks, csum_size, GFP_NOFS);
-               if (!bbio->csum) {
-                       btrfs_free_path(path);
+               if (!bbio->csum)
                        return BLK_STS_RESOURCE;
-               }
        } else {
                bbio->csum = bbio->csum_inline;
        }
@@ -444,7 +442,6 @@ blk_status_t btrfs_lookup_bio_sums(struct btrfs_bio *bbio)
                bio_offset += count * sectorsize;
        }
 
-       btrfs_free_path(path);
        return ret;
 }