]> git.itanic.dy.fi Git - linux-stable/commitdiff
sd: only call disk_clear_zoned when needed
authorChristoph Hellwig <hch@lst.de>
Sun, 17 Dec 2023 16:53:59 +0000 (17:53 +0100)
committerJens Axboe <axboe@kernel.dk>
Wed, 20 Dec 2023 03:17:43 +0000 (20:17 -0700)
disk_clear_zoned only needs to be called when a device reported zone
managed mode first and we clear it.  Add a check so that disk_clear_zoned
isn't called on devices that were never zoned.

This avoids a fairly expensive queue freezing when revalidating
conventional devices.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Link: https://lore.kernel.org/r/20231217165359.604246-6-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
drivers/scsi/sd.c

index dbed075cdb981a3769e5b97cca72e0da52818d78..8c8ac5cd1833b41cb0eb3ce3e068a6883299ddb8 100644 (file)
@@ -3149,7 +3149,7 @@ static void sd_read_block_characteristics(struct scsi_disk *sdkp)
                 * the device physical block size.
                 */
                blk_queue_zone_write_granularity(q, sdkp->physical_block_size);
-       } else {
+       } else if (blk_queue_is_zoned(q)) {
                /*
                 * Anything else.  This includes host-aware device that we treat
                 * as conventional.