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;
 
        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;
        }
                bio_offset += count * sectorsize;
        }
 
-       btrfs_free_path(path);
        return ret;
 }