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

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
...@@ -140,8 +140,6 @@ static void submit_one_bio(struct btrfs_bio_ctrl *bio_ctrl) ...@@ -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 */ /* Caller should ensure the bio has at least some range added */
ASSERT(bio->bi_iter.bi_size); 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 (!is_data_inode(inode)) {
if (btrfs_op(bio) != BTRFS_MAP_WRITE) { if (btrfs_op(bio) != BTRFS_MAP_WRITE) {
/* /*
...@@ -993,6 +991,7 @@ static void alloc_new_bio(struct btrfs_inode *inode, ...@@ -993,6 +991,7 @@ static void alloc_new_bio(struct btrfs_inode *inode,
bio->bi_iter.bi_sector = disk_bytenr >> SECTOR_SHIFT; bio->bi_iter.bi_sector = disk_bytenr >> SECTOR_SHIFT;
else else
bio->bi_iter.bi_sector = (disk_bytenr + offset) >> SECTOR_SHIFT; bio->bi_iter.bi_sector = (disk_bytenr + offset) >> SECTOR_SHIFT;
btrfs_bio(bio)->file_offset = file_offset;
bio_ctrl->bio = bio; bio_ctrl->bio = bio;
bio_ctrl->compress_type = compress_type; bio_ctrl->compress_type = compress_type;
calc_bio_boundaries(bio_ctrl, inode, file_offset); calc_bio_boundaries(bio_ctrl, inode, file_offset);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment