Commit 0d495430 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by David Sterba
Browse files

btrfs: set bbio->file_offset in alloc_new_bio



Instead of digging into the bio_vec in submit_one_bio, set file_offset at
bio allocation time from the provided parameter.  This also ensures that
the file_offset is available all the time when building up the bio
payload.

Reviewed-by: default avatarJosef Bacik <josef@toxicpanda.com>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 72fcf1a4
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -140,8 +140,6 @@ static void submit_one_bio(struct btrfs_bio_ctrl *bio_ctrl)
	/* Caller should ensure the bio has at least some range added */
	ASSERT(bio->bi_iter.bi_size);

	btrfs_bio(bio)->file_offset = page_offset(bv->bv_page) + bv->bv_offset;

	if (!is_data_inode(inode)) {
		if (btrfs_op(bio) != BTRFS_MAP_WRITE) {
			/*
@@ -993,6 +991,7 @@ static void alloc_new_bio(struct btrfs_inode *inode,
		bio->bi_iter.bi_sector = disk_bytenr >> SECTOR_SHIFT;
	else
		bio->bi_iter.bi_sector = (disk_bytenr + offset) >> SECTOR_SHIFT;
	btrfs_bio(bio)->file_offset = file_offset;
	bio_ctrl->bio = bio;
	bio_ctrl->compress_type = compress_type;
	calc_bio_boundaries(bio_ctrl, inode, file_offset);