Skip to content

Commit e33a97a

Browse files
Darrick J. Wongaxboe
authored andcommitted
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: 64b582c ("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>
1 parent e6b09a1 commit e33a97a

File tree

1 file changed

+1
-1
lines changed

1 file changed

+1
-1
lines changed

block/blk-lib.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ static int blkdev_issue_write_zeroes(struct block_device *bdev, sector_t sector,
174174
* on an I/O error, in which case we'll turn any error into
175175
* "not supported" here.
176176
*/
177-
if (ret && !limit)
177+
if (ret && !bdev_write_zeroes_sectors(bdev))
178178
return -EOPNOTSUPP;
179179
return ret;
180180
}

0 commit comments

Comments
 (0)