]> www.infradead.org Git - users/hch/block.git/commitdiff
block: pass a gendisk to blk_queue_free_zone_bitmaps
authorChristoph Hellwig <hch@lst.de>
Wed, 29 Jun 2022 10:32:55 +0000 (12:32 +0200)
committerChristoph Hellwig <hch@lst.de>
Tue, 5 Jul 2022 10:02:04 +0000 (12:02 +0200)
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>
block/blk-zoned.c
block/blk.h
block/genhd.c

index 82a4fa89678ce438663febb8c7e7f57a82ddb6c1..0d431394cf90c1077fbafafdd041a832a37ecab6 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 7482a3a441dd91ffc6329981257d615069b2dfa5..b71e22c97d773dab77f21da24bd5415ac3781da0 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 d0bdeb93e922c48c7f4a76bd3fbc019cb16ffa78..9d30f159c59ac3890278c79009c1418e463c129c 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;