block: fix detection of unsupported WRITE SAME in blkdev_issue_write_zeroes block-6.11-20240830
authorDarrick J. Wong <djwong@kernel.org>
Tue, 27 Aug 2024 17:53:40 +0000 (10:53 -0700)
committerJens Axboe <axboe@kernel.dk>
Wed, 28 Aug 2024 14:49:25 +0000 (08:49 -0600)
commite33a97a830b230b79a98dbbb4121d4741a2be619
treec0c850d96fef8a215b5f59112f13bf395a376f7f
parente6b09a173870720e4d4c6fd755803970015ac043
block: fix detection of unsupported WRITE SAME in blkdev_issue_write_zeroes

On error, blkdev_issue_write_zeroes used to recheck the block device's
WRITE SAME queue limits after submitting WRITE SAME bios.  As stated in
the comment, the purpose of this was to collapse all IO errors to
EOPNOTSUPP if the effect of issuing bios was that WRITE SAME got turned
off in the queue limits.  Therefore, it does not make sense to reuse the
zeroes limit that was read earlier in the function because we only care
about the queue limit *now*, not what it was at the start of the
function.

Found by running generic/351 from fstests.

Fixes: 64b582ca88ca1 ("block: Read max write zeroes once for __blkdev_issue_write_zeroes()")
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: John Garry <john.g.garry@oracle.com>
Link: https://lore.kernel.org/r/20240827175340.GB1977952@frogsfrogsfrogs
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-lib.c