Commit 4ba8223d authored by Christoph Hellwig's avatar Christoph Hellwig Committed by David Sterba
Browse files

btrfs: open code end_extent_writepage in end_bio_extent_writepage



This prepares for switching to more efficient ordered_extent processing
and already removes the forth and back conversion from len to end back to
len.

Reviewed-by: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: default avatarJosef Bacik <josef@toxicpanda.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 122e9ede
Loading
Loading
Loading
Loading
+9 −8
Original line number Diff line number Diff line
@@ -536,8 +536,6 @@ static void end_bio_extent_writepage(struct btrfs_bio *bbio)
	struct bio *bio = &bbio->bio;
	int error = blk_status_to_errno(bio->bi_status);
	struct bio_vec *bvec;
	u64 start;
	u64 end;
	struct bvec_iter_all iter_all;

	ASSERT(!bio_flagged(bio, BIO_CLONED));
@@ -546,6 +544,8 @@ static void end_bio_extent_writepage(struct btrfs_bio *bbio)
		struct inode *inode = page->mapping->host;
		struct btrfs_fs_info *fs_info = btrfs_sb(inode->i_sb);
		const u32 sectorsize = fs_info->sectorsize;
		u64 start = page_offset(page) + bvec->bv_offset;
		u32 len = bvec->bv_len;

		/* Our read/write should always be sector aligned. */
		if (!IS_ALIGNED(bvec->bv_offset, sectorsize))
@@ -557,12 +557,13 @@ 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);

		start = page_offset(page) + bvec->bv_offset;
		end = start + bvec->bv_len - 1;

		end_extent_writepage(page, error, start, end);

		btrfs_page_clear_writeback(fs_info, page, start, bvec->bv_len);
		btrfs_writepage_endio_finish_ordered(BTRFS_I(inode), page, start,
						     start + len - 1, !error);
		if (error) {
			btrfs_page_clear_uptodate(fs_info, page, start, len);
			mapping_set_error(page->mapping, error);
		}
		btrfs_page_clear_writeback(fs_info, page, start, len);
	}

	bio_put(bio);