blk-throttle: pass a gendisk to blk_throtl_init and blk_throtl_exit
authorChristoph Hellwig <hch@lst.de>
Wed, 21 Sep 2022 18:04:56 +0000 (20:04 +0200)
committerJens Axboe <axboe@kernel.dk>
Tue, 27 Sep 2022 01:17:27 +0000 (19:17 -0600)
Pass the gendisk to blk_throtl_init and blk_throtl_exit as part of moving
the blk-cgroup infrastructure to be gendisk based.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Andreas Herrmann <aherrmann@suse.de>
Acked-by: Tejun Heo <tj@kernel.org>
Link: https://lore.kernel.org/r/20220921180501.1539876-13-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-cgroup.c
block/blk-throttle.c
block/blk-throttle.h

index 82a117f..3dfd78f 100644 (file)
@@ -1261,7 +1261,7 @@ int blkcg_init_disk(struct gendisk *disk)
        if (ret)
                goto err_destroy_all;
 
-       ret = blk_throtl_init(q);
+       ret = blk_throtl_init(disk);
        if (ret)
                goto err_ioprio_exit;
 
@@ -1272,7 +1272,7 @@ int blkcg_init_disk(struct gendisk *disk)
        return 0;
 
 err_throtl_exit:
-       blk_throtl_exit(q);
+       blk_throtl_exit(disk);
 err_ioprio_exit:
        blk_ioprio_exit(disk);
 err_destroy_all:
@@ -1288,7 +1288,7 @@ err_unlock:
 void blkcg_exit_disk(struct gendisk *disk)
 {
        blkg_destroy_all(disk->queue);
-       blk_throtl_exit(disk->queue);
+       blk_throtl_exit(disk);
 }
 
 static void blkcg_bind(struct cgroup_subsys_state *root_css)
index 7831695..4879aec 100644 (file)
@@ -2351,8 +2351,9 @@ void blk_throtl_bio_endio(struct bio *bio)
 }
 #endif
 
-int blk_throtl_init(struct request_queue *q)
+int blk_throtl_init(struct gendisk *disk)
 {
+       struct request_queue *q = disk->queue;
        struct throtl_data *td;
        int ret;
 
@@ -2394,8 +2395,10 @@ int blk_throtl_init(struct request_queue *q)
        return ret;
 }
 
-void blk_throtl_exit(struct request_queue *q)
+void blk_throtl_exit(struct gendisk *disk)
 {
+       struct request_queue *q = disk->queue;
+
        BUG_ON(!q->td);
        del_timer_sync(&q->td->service_queue.pending_timer);
        throtl_shutdown_wq(q);
index 69f0001..1c9def9 100644 (file)
@@ -168,14 +168,14 @@ static inline struct throtl_grp *blkg_to_tg(struct blkcg_gq *blkg)
  * Internal throttling interface
  */
 #ifndef CONFIG_BLK_DEV_THROTTLING
-static inline int blk_throtl_init(struct request_queue *q) { return 0; }
-static inline void blk_throtl_exit(struct request_queue *q) { }
+static inline int blk_throtl_init(struct gendisk *disk) { return 0; }
+static inline void blk_throtl_exit(struct gendisk *disk) { }
 static inline void blk_throtl_register_queue(struct request_queue *q) { }
 static inline bool blk_throtl_bio(struct bio *bio) { return false; }
 static inline void blk_throtl_cancel_bios(struct request_queue *q) { }
 #else /* CONFIG_BLK_DEV_THROTTLING */
-int blk_throtl_init(struct request_queue *q);
-void blk_throtl_exit(struct request_queue *q);
+int blk_throtl_init(struct gendisk *disk);
+void blk_throtl_exit(struct gendisk *disk);
 void blk_throtl_register_queue(struct request_queue *q);
 bool __blk_throtl_bio(struct bio *bio);
 void blk_throtl_cancel_bios(struct request_queue *q);