btrfs: use btrfs_finish_ordered_extent to complete compressed writes
authorChristoph Hellwig <hch@lst.de>
Wed, 31 May 2023 07:54:08 +0000 (09:54 +0200)
committerDavid Sterba <dsterba@suse.com>
Mon, 19 Jun 2023 11:59:37 +0000 (13:59 +0200)
Use the btrfs_finish_ordered_extent helper to complete compressed writes
using the bbio->ordered pointer instead of requiring an rbtree lookup
in the otherwise equivalent btrfs_mark_ordered_io_finished called from
btrfs_writepage_endio_finish_ordered.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/compression.c

index ce4be0f..f100425 100644 (file)
@@ -224,13 +224,8 @@ static void btrfs_finish_compressed_write_work(struct work_struct *work)
        struct compressed_bio *cb =
                container_of(work, struct compressed_bio, write_end_work);
 
-       /*
-        * Ok, we're the last bio for this extent, step one is to call back
-        * into the FS and do all the end_io operations.
-        */
-       btrfs_writepage_endio_finish_ordered(cb->bbio.inode, NULL,
-                       cb->start, cb->start + cb->len - 1,
-                       cb->bbio.bio.bi_status == BLK_STS_OK);
+       btrfs_finish_ordered_extent(cb->bbio.ordered, NULL, cb->start, cb->len,
+                                   cb->bbio.bio.bi_status == BLK_STS_OK);
 
        if (cb->writeback)
                end_compressed_writeback(cb);