]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/blobdiff - include/linux/blkdev.h
Merge branch 'for-5.9/drivers' into for-5.9/block-merge
[mirror_ubuntu-jammy-kernel.git] / include / linux / blkdev.h
index 9ab06ea26894a2471564f68162c9097900003345..63078944909c6fd51fbf27cb42076c518aaac552 100644 (file)
@@ -513,6 +513,8 @@ struct request_queue {
        unsigned int            nr_zones;
        unsigned long           *conv_zones_bitmap;
        unsigned long           *seq_zones_wlock;
+       unsigned int            max_open_zones;
+       unsigned int            max_active_zones;
 #endif /* CONFIG_BLK_DEV_ZONED */
 
        /*
@@ -722,6 +724,28 @@ static inline bool blk_queue_zone_is_seq(struct request_queue *q,
                return true;
        return !test_bit(blk_queue_zone_no(q, sector), q->conv_zones_bitmap);
 }
+
+static inline void blk_queue_max_open_zones(struct request_queue *q,
+               unsigned int max_open_zones)
+{
+       q->max_open_zones = max_open_zones;
+}
+
+static inline unsigned int queue_max_open_zones(const struct request_queue *q)
+{
+       return q->max_open_zones;
+}
+
+static inline void blk_queue_max_active_zones(struct request_queue *q,
+               unsigned int max_active_zones)
+{
+       q->max_active_zones = max_active_zones;
+}
+
+static inline unsigned int queue_max_active_zones(const struct request_queue *q)
+{
+       return q->max_active_zones;
+}
 #else /* CONFIG_BLK_DEV_ZONED */
 static inline unsigned int blk_queue_nr_zones(struct request_queue *q)
 {
@@ -737,6 +761,14 @@ static inline unsigned int blk_queue_zone_no(struct request_queue *q,
 {
        return 0;
 }
+static inline unsigned int queue_max_open_zones(const struct request_queue *q)
+{
+       return 0;
+}
+static inline unsigned int queue_max_active_zones(const struct request_queue *q)
+{
+       return 0;
+}
 #endif /* CONFIG_BLK_DEV_ZONED */
 
 static inline bool rq_is_sync(struct request *rq)
@@ -1519,6 +1551,24 @@ static inline sector_t bdev_zone_sectors(struct block_device *bdev)
        return 0;
 }
 
+static inline unsigned int bdev_max_open_zones(struct block_device *bdev)
+{
+       struct request_queue *q = bdev_get_queue(bdev);
+
+       if (q)
+               return queue_max_open_zones(q);
+       return 0;
+}
+
+static inline unsigned int bdev_max_active_zones(struct block_device *bdev)
+{
+       struct request_queue *q = bdev_get_queue(bdev);
+
+       if (q)
+               return queue_max_active_zones(q);
+       return 0;
+}
+
 static inline int queue_dma_alignment(const struct request_queue *q)
 {
        return q ? q->dma_alignment : 511;