block: pass a gendisk to blk_queue_set_zoned
authorChristoph Hellwig <hch@lst.de>
Wed, 6 Jul 2022 07:03:40 +0000 (09:03 +0200)
committerJens Axboe <axboe@kernel.dk>
Wed, 6 Jul 2022 12:46:26 +0000 (06:46 -0600)
Prepare for storing the zone related field in struct gendisk instead
of struct request_queue.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Reviewed-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Link: https://lore.kernel.org/r/20220706070350.1703384-7-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-settings.c
block/partitions/core.c
drivers/block/null_blk/zoned.c
drivers/nvme/host/zns.c
drivers/scsi/sd.c
drivers/scsi/sd_zbc.c
include/linux/blkdev.h

index 6ccceb4..35b7bba 100644 (file)
@@ -893,18 +893,19 @@ static bool disk_has_partitions(struct gendisk *disk)
 }
 
 /**
- * blk_queue_set_zoned - configure a disk queue zoned model.
+ * disk_set_zoned - configure the zoned model for a disk
  * @disk:      the gendisk of the queue to configure
  * @model:     the zoned model to set
  *
- * Set the zoned model of the request queue of @disk according to @model.
+ * Set the zoned model of @disk to @model.
+ *
  * When @model is BLK_ZONED_HM (host managed), this should be called only
  * if zoned block device support is enabled (CONFIG_BLK_DEV_ZONED option).
  * If @model specifies BLK_ZONED_HA (host aware), the effective model used
  * depends on CONFIG_BLK_DEV_ZONED settings and on the existence of partitions
  * on the disk.
  */
-void blk_queue_set_zoned(struct gendisk *disk, enum blk_zoned_model model)
+void disk_set_zoned(struct gendisk *disk, enum blk_zoned_model model)
 {
        struct request_queue *q = disk->queue;
 
@@ -948,7 +949,7 @@ void blk_queue_set_zoned(struct gendisk *disk, enum blk_zoned_model model)
                blk_queue_clear_zone_settings(q);
        }
 }
-EXPORT_SYMBOL_GPL(blk_queue_set_zoned);
+EXPORT_SYMBOL_GPL(disk_set_zoned);
 
 int bdev_alignment_offset(struct block_device *bdev)
 {
index 7dc487f..1a45b1d 100644 (file)
@@ -330,7 +330,7 @@ static struct block_device *add_partition(struct gendisk *disk, int partno,
        case BLK_ZONED_HA:
                pr_info("%s: disabling host aware zoned block device support due to partitions\n",
                        disk->disk_name);
-               blk_queue_set_zoned(disk, BLK_ZONED_NONE);
+               disk_set_zoned(disk, BLK_ZONED_NONE);
                break;
        case BLK_ZONED_NONE:
                break;
index 2fdd7b2..b47bbd1 100644 (file)
@@ -159,7 +159,7 @@ int null_register_zoned_dev(struct nullb *nullb)
        struct nullb_device *dev = nullb->dev;
        struct request_queue *q = nullb->q;
 
-       blk_queue_set_zoned(nullb->disk, BLK_ZONED_HM);
+       disk_set_zoned(nullb->disk, BLK_ZONED_HM);
        blk_queue_flag_set(QUEUE_FLAG_ZONE_RESETALL, q);
        blk_queue_required_elevator_features(q, ELEVATOR_F_ZBD_SEQ_WRITE);
 
index 9f81beb..0ed15c2 100644 (file)
@@ -109,7 +109,7 @@ int nvme_update_zone_info(struct nvme_ns *ns, unsigned lbaf)
                goto free_data;
        }
 
-       blk_queue_set_zoned(ns->disk, BLK_ZONED_HM);
+       disk_set_zoned(ns->disk, BLK_ZONED_HM);
        blk_queue_flag_set(QUEUE_FLAG_ZONE_RESETALL, q);
        blk_queue_max_open_zones(q, le32_to_cpu(id->mor) + 1);
        blk_queue_max_active_zones(q, le32_to_cpu(id->mar) + 1);
index cb587e4..eb02d93 100644 (file)
@@ -2934,15 +2934,15 @@ static void sd_read_block_characteristics(struct scsi_disk *sdkp)
 
        if (sdkp->device->type == TYPE_ZBC) {
                /* Host-managed */
-               blk_queue_set_zoned(sdkp->disk, BLK_ZONED_HM);
+               disk_set_zoned(sdkp->disk, BLK_ZONED_HM);
        } else {
                sdkp->zoned = zoned;
                if (sdkp->zoned == 1) {
                        /* Host-aware */
-                       blk_queue_set_zoned(sdkp->disk, BLK_ZONED_HA);
+                       disk_set_zoned(sdkp->disk, BLK_ZONED_HA);
                } else {
                        /* Regular disk or drive managed disk */
-                       blk_queue_set_zoned(sdkp->disk, BLK_ZONED_NONE);
+                       disk_set_zoned(sdkp->disk, BLK_ZONED_NONE);
                }
        }
 
index 6acc4f4..0f5823b 100644 (file)
@@ -929,7 +929,7 @@ int sd_zbc_read_zones(struct scsi_disk *sdkp, u8 buf[SD_BUF_SIZE])
                /*
                 * This can happen for a host aware disk with partitions.
                 * The block device zone model was already cleared by
-                * blk_queue_set_zoned(). Only free the scsi disk zone
+                * disk_set_zoned(). Only free the scsi disk zone
                 * information and exit early.
                 */
                sd_zbc_free_zone_info(sdkp);
index 270cd0c..416faa0 100644 (file)
@@ -291,7 +291,7 @@ struct queue_limits {
 typedef int (*report_zones_cb)(struct blk_zone *zone, unsigned int idx,
                               void *data);
 
-void blk_queue_set_zoned(struct gendisk *disk, enum blk_zoned_model model);
+void disk_set_zoned(struct gendisk *disk, enum blk_zoned_model model);
 
 #ifdef CONFIG_BLK_DEV_ZONED