block: move max_{open,active}_zones to struct queue_limits
authorChristoph Hellwig <hch@lst.de>
Tue, 13 Feb 2024 07:34:11 +0000 (08:34 +0100)
committerJens Axboe <axboe@kernel.dk>
Tue, 13 Feb 2024 15:56:59 +0000 (08:56 -0700)
The maximum number of open and active zones is a limit on the queue
and should be places there so that we can including it in the upcoming
queue limits batch update API.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Chaitanya Kulkarni <kch@nvidia.com>
Reviewed-by: Ming Lei <ming.lei@redhat.com>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
Reviewed-by: Hannes Reinecke <hare@suse.de>
Link: https://lore.kernel.org/r/20240213073425.1621680-2-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
include/linux/blkdev.h

index 0058783a4c4351f8e14d9a8822de4410b4cd77b5..251a11d2d2aeff922bc176a0a07907c99bcb7759 100644 (file)
@@ -190,8 +190,6 @@ struct gendisk {
         * blk_mq_unfreeze_queue().
         */
        unsigned int            nr_zones;
-       unsigned int            max_open_zones;
-       unsigned int            max_active_zones;
        unsigned long           *conv_zones_bitmap;
        unsigned long           *seq_zones_wlock;
 #endif /* CONFIG_BLK_DEV_ZONED */
@@ -308,6 +306,8 @@ struct queue_limits {
        unsigned char           discard_misaligned;
        unsigned char           raid_partial_stripes_expensive;
        bool                    zoned;
+       unsigned int            max_open_zones;
+       unsigned int            max_active_zones;
 
        /*
         * Drivers that set dma_alignment to less than 511 must be prepared to
@@ -640,23 +640,23 @@ static inline bool disk_zone_is_seq(struct gendisk *disk, sector_t sector)
 static inline void disk_set_max_open_zones(struct gendisk *disk,
                unsigned int max_open_zones)
 {
-       disk->max_open_zones = max_open_zones;
+       disk->queue->limits.max_open_zones = max_open_zones;
 }
 
 static inline void disk_set_max_active_zones(struct gendisk *disk,
                unsigned int max_active_zones)
 {
-       disk->max_active_zones = max_active_zones;
+       disk->queue->limits.max_active_zones = max_active_zones;
 }
 
 static inline unsigned int bdev_max_open_zones(struct block_device *bdev)
 {
-       return bdev->bd_disk->max_open_zones;
+       return bdev->bd_disk->queue->limits.max_open_zones;
 }
 
 static inline unsigned int bdev_max_active_zones(struct block_device *bdev)
 {
-       return bdev->bd_disk->max_active_zones;
+       return bdev->bd_disk->queue->limits.max_active_zones;
 }
 
 #else /* CONFIG_BLK_DEV_ZONED */