Revert "blk-cgroup: pass a gendisk to blkg_lookup"
authorChristoph Hellwig <hch@lst.de>
Tue, 14 Feb 2023 18:33:07 +0000 (19:33 +0100)
committerJens Axboe <axboe@kernel.dk>
Tue, 14 Feb 2023 21:24:09 +0000 (14:24 -0700)
This reverts commit 821e840c08ad83736eced4037cdad864e95e2584.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Link: https://lore.kernel.org/r/20230214183308.1658775-5-hch@lst.de
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-cgroup.c
block/blk-cgroup.h

index 1653786..1574566 100644 (file)
@@ -350,7 +350,7 @@ static struct blkcg_gq *blkg_create(struct blkcg *blkcg, struct gendisk *disk,
 
        /* link parent */
        if (blkcg_parent(blkcg)) {
-               blkg->parent = blkg_lookup(blkcg_parent(blkcg), disk);
+               blkg->parent = blkg_lookup(blkcg_parent(blkcg), disk->queue);
                if (WARN_ON_ONCE(!blkg->parent)) {
                        ret = -ENODEV;
                        goto err_put_css;
@@ -423,12 +423,12 @@ static struct blkcg_gq *blkg_lookup_create(struct blkcg *blkcg,
 
        WARN_ON_ONCE(!rcu_read_lock_held());
 
-       blkg = blkg_lookup(blkcg, disk);
+       blkg = blkg_lookup(blkcg, q);
        if (blkg)
                return blkg;
 
        spin_lock_irqsave(&q->queue_lock, flags);
-       blkg = blkg_lookup(blkcg, disk);
+       blkg = blkg_lookup(blkcg, q);
        if (blkg) {
                if (blkcg != &blkcg_root &&
                    blkg != rcu_dereference(blkcg->blkg_hint))
@@ -447,7 +447,7 @@ static struct blkcg_gq *blkg_lookup_create(struct blkcg *blkcg,
                struct blkcg_gq *ret_blkg = q->root_blkg;
 
                while (parent) {
-                       blkg = blkg_lookup(parent, disk);
+                       blkg = blkg_lookup(parent, q);
                        if (blkg) {
                                /* remember closest blkg */
                                ret_blkg = blkg;
@@ -733,7 +733,7 @@ int blkg_conf_prep(struct blkcg *blkcg, const struct blkcg_policy *pol,
                goto fail_unlock;
        }
 
-       blkg = blkg_lookup(blkcg, disk);
+       blkg = blkg_lookup(blkcg, q);
        if (blkg)
                goto success;
 
@@ -747,7 +747,7 @@ int blkg_conf_prep(struct blkcg *blkcg, const struct blkcg_policy *pol,
                struct blkcg_gq *new_blkg;
 
                parent = blkcg_parent(blkcg);
-               while (parent && !blkg_lookup(parent, disk)) {
+               while (parent && !blkg_lookup(parent, q)) {
                        pos = parent;
                        parent = blkcg_parent(parent);
                }
@@ -777,7 +777,7 @@ int blkg_conf_prep(struct blkcg *blkcg, const struct blkcg_policy *pol,
                        goto fail_preloaded;
                }
 
-               blkg = blkg_lookup(pos, disk);
+               blkg = blkg_lookup(pos, q);
                if (blkg) {
                        blkg_free(new_blkg);
                } else {
@@ -1852,7 +1852,7 @@ void blkcg_maybe_throttle_current(void)
        blkcg = css_to_blkcg(blkcg_css());
        if (!blkcg)
                goto out;
-       blkg = blkg_lookup(blkcg, disk);
+       blkg = blkg_lookup(blkcg, disk->queue);
        if (!blkg)
                goto out;
        if (!blkg_tryget(blkg))
index 151f24d..3d9e42c 100644 (file)
@@ -234,30 +234,30 @@ static inline bool bio_issue_as_root_blkg(struct bio *bio)
 }
 
 /**
- * blkg_lookup - lookup blkg for the specified blkcg - disk pair
+ * blkg_lookup - lookup blkg for the specified blkcg - q pair
  * @blkcg: blkcg of interest
- * @disk: gendisk of interest
+ * @q: request_queue of interest
  *
- * Lookup blkg for the @blkcg - @disk pair.
+ * Lookup blkg for the @blkcg - @q pair.
 
  * Must be called in a RCU critical section.
  */
 static inline struct blkcg_gq *blkg_lookup(struct blkcg *blkcg,
-                                          struct gendisk *disk)
+                                          struct request_queue *q)
 {
        struct blkcg_gq *blkg;
 
        WARN_ON_ONCE(!rcu_read_lock_held());
 
        if (blkcg == &blkcg_root)
-               return disk->queue->root_blkg;
+               return q->root_blkg;
 
        blkg = rcu_dereference(blkcg->blkg_hint);
-       if (blkg && blkg->disk == disk)
+       if (blkg && blkg->disk->queue == q)
                return blkg;
 
-       blkg = radix_tree_lookup(&blkcg->blkg_tree, disk->queue->id);
-       if (blkg && blkg->disk != disk)
+       blkg = radix_tree_lookup(&blkcg->blkg_tree, q->id);
+       if (blkg && blkg->disk->queue != q)
                blkg = NULL;
        return blkg;
 }
@@ -357,7 +357,7 @@ static inline void blkg_put(struct blkcg_gq *blkg)
 #define blkg_for_each_descendant_pre(d_blkg, pos_css, p_blkg)          \
        css_for_each_descendant_pre((pos_css), &(p_blkg)->blkcg->css)   \
                if (((d_blkg) = blkg_lookup(css_to_blkcg(pos_css),      \
-                                           (p_blkg)->disk)))
+                                           (p_blkg)->disk->queue)))
 
 /**
  * blkg_for_each_descendant_post - post-order walk of a blkg's descendants
@@ -372,7 +372,7 @@ static inline void blkg_put(struct blkcg_gq *blkg)
 #define blkg_for_each_descendant_post(d_blkg, pos_css, p_blkg)         \
        css_for_each_descendant_post((pos_css), &(p_blkg)->blkcg->css)  \
                if (((d_blkg) = blkg_lookup(css_to_blkcg(pos_css),      \
-                                           (p_blkg)->disk)))
+                                           (p_blkg)->disk->queue)))
 
 bool __blkcg_punt_bio_submit(struct bio *bio);