block: pass a gendisk to blk_queue_free_zone_bitmaps
authorChristoph Hellwig <hch@lst.de>
Wed, 6 Jul 2022 07:03:42 +0000 (09:03 +0200)
committerJens Axboe <axboe@kernel.dk>
Wed, 6 Jul 2022 12:46:26 +0000 (06:46 -0600)
Switch to a gendisk based API in preparation for moving all zone related
fields from the request_queue to the gendisk.

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-9-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-zoned.c
block/blk.h
block/genhd.c

index 82a4fa8..0d43139 100644 (file)
@@ -449,8 +449,10 @@ fail:
        return ret;
 }
 
-void blk_queue_free_zone_bitmaps(struct request_queue *q)
+void disk_free_zone_bitmaps(struct gendisk *disk)
 {
+       struct request_queue *q = disk->queue;
+
        kfree(q->conv_zones_bitmap);
        q->conv_zones_bitmap = NULL;
        kfree(q->seq_zones_wlock);
@@ -612,7 +614,7 @@ int blk_revalidate_disk_zones(struct gendisk *disk,
                ret = 0;
        } else {
                pr_warn("%s: failed to revalidate zones\n", disk->disk_name);
-               blk_queue_free_zone_bitmaps(q);
+               disk_free_zone_bitmaps(disk);
        }
        blk_mq_unfreeze_queue(q);
 
@@ -628,7 +630,7 @@ void disk_clear_zone_settings(struct gendisk *disk)
 
        blk_mq_freeze_queue(q);
 
-       blk_queue_free_zone_bitmaps(q);
+       disk_free_zone_bitmaps(disk);
        blk_queue_flag_clear(QUEUE_FLAG_ZONE_RESETALL, q);
        q->required_elevator_features &= ~ELEVATOR_F_ZBD_SEQ_WRITE;
        q->nr_zones = 0;
index 7482a3a..b71e22c 100644 (file)
@@ -405,10 +405,10 @@ static inline int blk_iolatency_init(struct request_queue *q) { return 0; }
 #endif
 
 #ifdef CONFIG_BLK_DEV_ZONED
-void blk_queue_free_zone_bitmaps(struct request_queue *q);
+void disk_free_zone_bitmaps(struct gendisk *disk);
 void disk_clear_zone_settings(struct gendisk *disk);
 #else
-static inline void blk_queue_free_zone_bitmaps(struct request_queue *q) {}
+static inline void disk_free_zone_bitmaps(struct gendisk *disk) {}
 static inline void disk_clear_zone_settings(struct gendisk *disk) {}
 #endif
 
index d0bdeb9..9d30f15 100644 (file)
@@ -1165,7 +1165,7 @@ static void disk_release(struct device *dev)
 
        disk_release_events(disk);
        kfree(disk->random);
-       blk_queue_free_zone_bitmaps(disk->queue);
+       disk_free_zone_bitmaps(disk);
        xa_destroy(&disk->part_tbl);
 
        disk->queue->disk = NULL;