btrfs: use file_offset to limit bios size in calc_bio_boundaries
btrfs_ordered_extent->disk_bytenr can be rewritten by the zoned I/O completion handler, and thus in general is not a good idea to limit I/O size. But the maximum bio size calculation can easily be done using the file_offset fields in the btrfs_ordered_extent and btrfs_bio structures, so switch to that instead. Reviewed-by: Josef Bacik <josef@toxicpanda.com> Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
a724f313f8
commit
72fcf1a47b
@ -964,8 +964,8 @@ static void calc_bio_boundaries(struct btrfs_bio_ctrl *bio_ctrl,
|
||||
ordered = btrfs_lookup_ordered_extent(inode, file_offset);
|
||||
if (ordered) {
|
||||
bio_ctrl->len_to_oe_boundary = min_t(u32, U32_MAX,
|
||||
ordered->disk_bytenr +
|
||||
ordered->disk_num_bytes - logical);
|
||||
ordered->file_offset +
|
||||
ordered->disk_num_bytes - file_offset);
|
||||
btrfs_put_ordered_extent(ordered);
|
||||
return;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user