Skip to content

Commit 9c1d339

Browse files
Christoph Hellwigaxboe
authored andcommitted
sd: cleanup zoned queue limits initialization
Consolidate setting zone-related queue limits in sd_zbc_read_zones instead of splitting them between sd_zbc_revalidate_zones and sd_zbc_read_zones, and move the early_zone_information initialization in sd_zbc_read_zones above setting up the queue limits. Signed-off-by: Christoph Hellwig <[email protected]> Reviewed-by: Bart Van Assche <[email protected]> Reviewed-by: Damien Le Moal <[email protected]> Reviewed-by: Martin K. Petersen <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Jens Axboe <[email protected]>
1 parent f1e8185 commit 9c1d339

File tree

1 file changed

+8
-10
lines changed

1 file changed

+8
-10
lines changed

drivers/scsi/sd_zbc.c

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -565,12 +565,6 @@ int sd_zbc_revalidate_zones(struct scsi_disk *sdkp)
565565
sdkp->zone_info.zone_blocks = zone_blocks;
566566
sdkp->zone_info.nr_zones = nr_zones;
567567

568-
blk_queue_chunk_sectors(q,
569-
logical_to_sectors(sdkp->device, zone_blocks));
570-
571-
/* Enable block layer zone append emulation */
572-
blk_queue_max_zone_append_sectors(q, 0);
573-
574568
flags = memalloc_noio_save();
575569
ret = blk_revalidate_disk_zones(disk);
576570
memalloc_noio_restore(flags);
@@ -625,17 +619,21 @@ int sd_zbc_read_zones(struct scsi_disk *sdkp, u8 buf[SD_BUF_SIZE])
625619
if (ret != 0)
626620
goto err;
627621

622+
nr_zones = round_up(sdkp->capacity, zone_blocks) >> ilog2(zone_blocks);
623+
sdkp->early_zone_info.nr_zones = nr_zones;
624+
sdkp->early_zone_info.zone_blocks = zone_blocks;
625+
628626
/* The drive satisfies the kernel restrictions: set it up */
629627
blk_queue_flag_set(QUEUE_FLAG_ZONE_RESETALL, q);
630628
if (sdkp->zones_max_open == U32_MAX)
631629
disk_set_max_open_zones(disk, 0);
632630
else
633631
disk_set_max_open_zones(disk, sdkp->zones_max_open);
634632
disk_set_max_active_zones(disk, 0);
635-
nr_zones = round_up(sdkp->capacity, zone_blocks) >> ilog2(zone_blocks);
636-
637-
sdkp->early_zone_info.nr_zones = nr_zones;
638-
sdkp->early_zone_info.zone_blocks = zone_blocks;
633+
blk_queue_chunk_sectors(q,
634+
logical_to_sectors(sdkp->device, zone_blocks));
635+
/* Enable block layer zone append emulation */
636+
blk_queue_max_zone_append_sectors(q, 0);
639637

640638
return 0;
641639

0 commit comments

Comments
 (0)