btrfs: use btrfs_finish_ordered_extent to complete buffered writes
authorChristoph Hellwig <hch@lst.de>
Wed, 31 May 2023 07:54:10 +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/extent_io.c

index 827e8df..a91d5ad 100644 (file)
@@ -557,8 +557,7 @@ static void end_bio_extent_writepage(struct btrfs_bio *bbio)
                "incomplete page write with offset %u and length %u",
                                   bvec->bv_offset, bvec->bv_len);
 
-               btrfs_writepage_endio_finish_ordered(BTRFS_I(inode), page, start,
-                                                    start + len - 1, !error);
+               btrfs_finish_ordered_extent(bbio->ordered, page, start, len, !error);
                if (error) {
                        btrfs_page_clear_uptodate(fs_info, page, start, len);
                        mapping_set_error(page->mapping, error);