btrfs: fix direct I/O writes for split bios on zoned devices
authorChristoph Hellwig <hch@lst.de>
Thu, 24 Mar 2022 16:06:28 +0000 (17:06 +0100)
committerDavid Sterba <dsterba@suse.com>
Tue, 19 Apr 2022 13:45:04 +0000 (15:45 +0200)
commit0fdf977d4576ee0decd612e22f6a837a239573cc
tree8ef61ac8fe7274688792cc489e165bb9d736c989
parent00d825258bcc09c0e1b99aa7f9ad7d2c2fad41fa
btrfs: fix direct I/O writes for split bios on zoned devices

When a bio is split in btrfs_submit_direct, dip->file_offset contains
the file offset for the first bio.  But this means the start value used
in btrfs_end_dio_bio to record the write location for zone devices is
incorrect for subsequent bios.

CC: stable@vger.kernel.org # 5.16+
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Naohiro Aota <naohiro.aota@wdc.com>
Reviewed-by: Qu Wenruo <wqu@suse.com>
Reviewed-by: Sweet Tea Dorminy <sweettea-kernel@dorminy.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/inode.c