]> www.infradead.org Git - users/hch/block.git/commitdiff
blk-ioprio: remove per-disk structure
authorYu Kuai <yukuai3@huawei.com>
Fri, 19 Jul 2024 07:15:06 +0000 (15:15 +0800)
committerJens Axboe <axboe@kernel.dk>
Sun, 28 Jul 2024 22:47:51 +0000 (16:47 -0600)
ioprio works on the blk-cgroup level, all disks in the same cgroup
are the same, and the struct ioprio_blkg doesn't have anything in it.
Hence register the policy is enough, because cpd_alloc/free_fn will
be handled for each blk-cgroup, and there is no need to activate the
policy for disk. Hence remove blk_ioprio_init/exit and
ioprio_alloc/free_pd.

Signed-off-by: Yu Kuai <yukuai3@huawei.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Acked-by: Tejun Heo <tj@kernel.org>
Reviewed-by: Bart Van Assche <bvanassche@acm.org>
Link: https://lore.kernel.org/r/20240719071506.158075-4-yukuai1@huaweicloud.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-cgroup.c
block/blk-ioprio.c
block/blk-ioprio.h

index fa6ec02ab3cfc3b0d955164697956e4fdabcb811..e68c725cf8d975f53703ecf6e6c50594076204c8 100644 (file)
@@ -1458,7 +1458,6 @@ int blkcg_init_disk(struct gendisk *disk)
        struct request_queue *q = disk->queue;
        struct blkcg_gq *new_blkg, *blkg;
        bool preloaded;
-       int ret;
 
        new_blkg = blkg_alloc(&blkcg_root, disk, GFP_KERNEL);
        if (!new_blkg)
@@ -1478,15 +1477,8 @@ int blkcg_init_disk(struct gendisk *disk)
        if (preloaded)
                radix_tree_preload_end();
 
-       ret = blk_ioprio_init(disk);
-       if (ret)
-               goto err_destroy_all;
-
        return 0;
 
-err_destroy_all:
-       blkg_destroy_all(disk);
-       return ret;
 err_unlock:
        spin_unlock_irq(&q->queue_lock);
        if (preloaded)
index ae52b418e984f6beb96bba3e83b3c1161a4f3478..8fff7ccc0ac7353ee72d4e15105f6b2fa68fbfed 100644 (file)
@@ -49,14 +49,6 @@ static const char *policy_name[] = {
 
 static struct blkcg_policy ioprio_policy;
 
-/**
- * struct ioprio_blkg - Per (cgroup, request queue) data.
- * @pd: blkg_policy_data structure.
- */
-struct ioprio_blkg {
-       struct blkg_policy_data pd;
-};
-
 /**
  * struct ioprio_blkcg - Per cgroup data.
  * @cpd: blkcg_policy_data structure.
@@ -67,11 +59,6 @@ struct ioprio_blkcg {
        enum prio_policy         prio_policy;
 };
 
-static inline struct ioprio_blkg *pd_to_ioprio(struct blkg_policy_data *pd)
-{
-       return pd ? container_of(pd, struct ioprio_blkg, pd) : NULL;
-}
-
 static struct ioprio_blkcg *blkcg_to_ioprio_blkcg(struct blkcg *blkcg)
 {
        return container_of(blkcg_to_cpd(blkcg, &ioprio_policy),
@@ -108,25 +95,6 @@ static ssize_t ioprio_set_prio_policy(struct kernfs_open_file *of, char *buf,
        return nbytes;
 }
 
-static struct blkg_policy_data *
-ioprio_alloc_pd(struct gendisk *disk, struct blkcg *blkcg, gfp_t gfp)
-{
-       struct ioprio_blkg *ioprio_blkg;
-
-       ioprio_blkg = kzalloc(sizeof(*ioprio_blkg), gfp);
-       if (!ioprio_blkg)
-               return NULL;
-
-       return &ioprio_blkg->pd;
-}
-
-static void ioprio_free_pd(struct blkg_policy_data *pd)
-{
-       struct ioprio_blkg *ioprio_blkg = pd_to_ioprio(pd);
-
-       kfree(ioprio_blkg);
-}
-
 static struct blkcg_policy_data *ioprio_alloc_cpd(gfp_t gfp)
 {
        struct ioprio_blkcg *blkcg;
@@ -169,9 +137,6 @@ static struct blkcg_policy ioprio_policy = {
 
        .cpd_alloc_fn   = ioprio_alloc_cpd,
        .cpd_free_fn    = ioprio_free_cpd,
-
-       .pd_alloc_fn    = ioprio_alloc_pd,
-       .pd_free_fn     = ioprio_free_pd,
 };
 
 void blkcg_set_ioprio(struct bio *bio)
@@ -209,16 +174,6 @@ void blkcg_set_ioprio(struct bio *bio)
                bio->bi_ioprio = prio;
 }
 
-void blk_ioprio_exit(struct gendisk *disk)
-{
-       blkcg_deactivate_policy(disk, &ioprio_policy);
-}
-
-int blk_ioprio_init(struct gendisk *disk)
-{
-       return blkcg_activate_policy(disk, &ioprio_policy);
-}
-
 static int __init ioprio_init(void)
 {
        return blkcg_policy_register(&ioprio_policy);
index b6afb8e80de05cc990e9d263b6884b44e6bc3b82..9265143f9bc9f9ad1cc686247be6312d273b0524 100644 (file)
@@ -9,17 +9,8 @@ struct request_queue;
 struct bio;
 
 #ifdef CONFIG_BLK_CGROUP_IOPRIO
-int blk_ioprio_init(struct gendisk *disk);
-void blk_ioprio_exit(struct gendisk *disk);
 void blkcg_set_ioprio(struct bio *bio);
 #else
-static inline int blk_ioprio_init(struct gendisk *disk)
-{
-       return 0;
-}
-static inline void blk_ioprio_exit(struct gendisk *disk)
-{
-}
 static inline void blkcg_set_ioprio(struct bio *bio)
 {
 }