blkcg: use @pol instead of @plid in update_root_blkg_pd() and blkcg_print_blkgs()
authorTejun Heo <tj@kernel.org>
Fri, 13 Apr 2012 20:11:27 +0000 (13:11 -0700)
committerJens Axboe <axboe@kernel.dk>
Fri, 20 Apr 2012 08:06:06 +0000 (10:06 +0200)
The two functions were taking "enum blkio_policy_id plid".  Make them
take "const struct blkio_policy_type *pol" instead.

This is to prepare for per-queue policy activation and doesn't cause
any functional difference.

Signed-off-by: Tejun Heo <tj@kernel.org>
Cc: Vivek Goyal <vgoyal@redhat.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-cgroup.c
block/blk-cgroup.h
block/blk-throttle.c
block/cfq-iosched.c

index af665fe7f4f2db2ed2241325790eada804ec2520..b1231524a0978a31db45f2150e08bb4e34519c2c 100644 (file)
@@ -226,17 +226,17 @@ static void blkg_destroy(struct blkio_group *blkg)
  * aren't shot down.  This broken and racy implementation is temporary.
  * Eventually, blkg shoot down will be replaced by proper in-place update.
  */
-void update_root_blkg_pd(struct request_queue *q, enum blkio_policy_id plid)
+void update_root_blkg_pd(struct request_queue *q,
+                        const struct blkio_policy_type *pol)
 {
-       struct blkio_policy_type *pol = blkio_policy[plid];
        struct blkio_group *blkg = blkg_lookup(&blkio_root_cgroup, q);
        struct blkg_policy_data *pd;
 
        if (!blkg)
                return;
 
-       kfree(blkg->pd[plid]);
-       blkg->pd[plid] = NULL;
+       kfree(blkg->pd[pol->plid]);
+       blkg->pd[pol->plid] = NULL;
 
        if (!pol)
                return;
@@ -244,7 +244,7 @@ void update_root_blkg_pd(struct request_queue *q, enum blkio_policy_id plid)
        pd = kzalloc(sizeof(*pd) + pol->pdata_size, GFP_KERNEL);
        WARN_ON_ONCE(!pd);
 
-       blkg->pd[plid] = pd;
+       blkg->pd[pol->plid] = pd;
        pd->blkg = blkg;
        pol->ops.blkio_init_group_fn(blkg);
 }
@@ -360,7 +360,8 @@ static const char *blkg_dev_name(struct blkio_group *blkg)
  */
 void blkcg_print_blkgs(struct seq_file *sf, struct blkio_cgroup *blkcg,
                       u64 (*prfill)(struct seq_file *, void *, int),
-                      int pol, int data, bool show_total)
+                      const struct blkio_policy_type *pol, int data,
+                      bool show_total)
 {
        struct blkio_group *blkg;
        struct hlist_node *n;
@@ -368,8 +369,8 @@ void blkcg_print_blkgs(struct seq_file *sf, struct blkio_cgroup *blkcg,
 
        spin_lock_irq(&blkcg->lock);
        hlist_for_each_entry(blkg, n, &blkcg->blkg_list, blkcg_node)
-               if (blkg->pd[pol])
-                       total += prfill(sf, blkg->pd[pol]->pdata, data);
+               if (blkg->pd[pol->plid])
+                       total += prfill(sf, blkg->pd[pol->plid]->pdata, data);
        spin_unlock_irq(&blkcg->lock);
 
        if (show_total)
@@ -739,7 +740,7 @@ void blkio_policy_register(struct blkio_policy_type *blkiop)
        BUG_ON(blkio_policy[blkiop->plid]);
        blkio_policy[blkiop->plid] = blkiop;
        list_for_each_entry(q, &all_q_list, all_q_node)
-               update_root_blkg_pd(q, blkiop->plid);
+               update_root_blkg_pd(q, blkiop);
 
        blkcg_bypass_end();
 
@@ -765,7 +766,7 @@ void blkio_policy_unregister(struct blkio_policy_type *blkiop)
        blkio_policy[blkiop->plid] = NULL;
 
        list_for_each_entry(q, &all_q_list, all_q_node)
-               update_root_blkg_pd(q, blkiop->plid);
+               update_root_blkg_pd(q, blkiop);
        blkcg_bypass_end();
 
        mutex_unlock(&blkcg_pol_mutex);
index c772581c901164fa23eeadf8687d21c31c86b5cd..26949731108fbe5585427d04658adeea92fd4556 100644 (file)
@@ -117,11 +117,12 @@ extern void blkio_policy_register(struct blkio_policy_type *);
 extern void blkio_policy_unregister(struct blkio_policy_type *);
 extern void blkg_destroy_all(struct request_queue *q, bool destroy_root);
 extern void update_root_blkg_pd(struct request_queue *q,
-                               enum blkio_policy_id plid);
+                               const struct blkio_policy_type *pol);
 
 void blkcg_print_blkgs(struct seq_file *sf, struct blkio_cgroup *blkcg,
                       u64 (*prfill)(struct seq_file *, void *, int),
-                      int pol, int data, bool show_total);
+                      const struct blkio_policy_type *pol, int data,
+                      bool show_total);
 u64 __blkg_prfill_u64(struct seq_file *sf, void *pdata, u64 v);
 u64 __blkg_prfill_rwstat(struct seq_file *sf, void *pdata,
                         const struct blkg_rwstat *rwstat);
@@ -333,7 +334,7 @@ static inline void blkio_policy_unregister(struct blkio_policy_type *blkiop) { }
 static inline void blkg_destroy_all(struct request_queue *q,
                                    bool destory_root) { }
 static inline void update_root_blkg_pd(struct request_queue *q,
-                                      enum blkio_policy_id plid) { }
+                                      const struct blkio_policy_type *pol) { }
 
 static inline void *blkg_to_pdata(struct blkio_group *blkg,
                                struct blkio_policy_type *pol) { return NULL; }
index 60240142f5ae1e1623ef3b0e258bbd046b625e78..07c17c27a628bc4f5bef16e83d07a3e574c07e2d 100644 (file)
@@ -946,7 +946,7 @@ static int tg_print_cpu_rwstat(struct cgroup *cgrp, struct cftype *cft,
 {
        struct blkio_cgroup *blkcg = cgroup_to_blkio_cgroup(cgrp);
 
-       blkcg_print_blkgs(sf, blkcg, tg_prfill_cpu_rwstat, BLKIO_POLICY_THROTL,
+       blkcg_print_blkgs(sf, blkcg, tg_prfill_cpu_rwstat, &blkio_policy_throtl,
                          cft->private, true);
        return 0;
 }
@@ -973,7 +973,7 @@ static int tg_print_conf_u64(struct cgroup *cgrp, struct cftype *cft,
                             struct seq_file *sf)
 {
        blkcg_print_blkgs(sf, cgroup_to_blkio_cgroup(cgrp), tg_prfill_conf_u64,
-                         BLKIO_POLICY_THROTL, cft->private, false);
+                         &blkio_policy_throtl, cft->private, false);
        return 0;
 }
 
@@ -981,7 +981,7 @@ static int tg_print_conf_uint(struct cgroup *cgrp, struct cftype *cft,
                              struct seq_file *sf)
 {
        blkcg_print_blkgs(sf, cgroup_to_blkio_cgroup(cgrp), tg_prfill_conf_uint,
-                         BLKIO_POLICY_THROTL, cft->private, false);
+                         &blkio_policy_throtl, cft->private, false);
        return 0;
 }
 
index 7a8c3e0ab3a220135905ddc440da93abd4f783d6..d02f0ae9637f22304cc9ab34d1f41ab27299cde1 100644 (file)
@@ -1380,7 +1380,7 @@ static int cfqg_print_weight_device(struct cgroup *cgrp, struct cftype *cft,
                                    struct seq_file *sf)
 {
        blkcg_print_blkgs(sf, cgroup_to_blkio_cgroup(cgrp),
-                         cfqg_prfill_weight_device, BLKIO_POLICY_PROP, 0,
+                         cfqg_prfill_weight_device, &blkio_policy_cfq, 0,
                          false);
        return 0;
 }
@@ -1445,7 +1445,7 @@ static int cfqg_print_stat(struct cgroup *cgrp, struct cftype *cft,
 {
        struct blkio_cgroup *blkcg = cgroup_to_blkio_cgroup(cgrp);
 
-       blkcg_print_blkgs(sf, blkcg, blkg_prfill_stat, BLKIO_POLICY_PROP,
+       blkcg_print_blkgs(sf, blkcg, blkg_prfill_stat, &blkio_policy_cfq,
                          cft->private, false);
        return 0;
 }
@@ -1455,7 +1455,7 @@ static int cfqg_print_rwstat(struct cgroup *cgrp, struct cftype *cft,
 {
        struct blkio_cgroup *blkcg = cgroup_to_blkio_cgroup(cgrp);
 
-       blkcg_print_blkgs(sf, blkcg, blkg_prfill_rwstat, BLKIO_POLICY_PROP,
+       blkcg_print_blkgs(sf, blkcg, blkg_prfill_rwstat, &blkio_policy_cfq,
                          cft->private, true);
        return 0;
 }
@@ -1482,7 +1482,7 @@ static int cfqg_print_avg_queue_size(struct cgroup *cgrp, struct cftype *cft,
        struct blkio_cgroup *blkcg = cgroup_to_blkio_cgroup(cgrp);
 
        blkcg_print_blkgs(sf, blkcg, cfqg_prfill_avg_queue_size,
-                         BLKIO_POLICY_PROP, 0, false);
+                         &blkio_policy_cfq, 0, false);
        return 0;
 }
 #endif /* CONFIG_DEBUG_BLK_CGROUP */
@@ -3938,7 +3938,7 @@ static void cfq_exit_queue(struct elevator_queue *e)
 #ifndef CONFIG_CFQ_GROUP_IOSCHED
        kfree(cfqd->root_group);
 #endif
-       update_root_blkg_pd(q, BLKIO_POLICY_PROP);
+       update_root_blkg_pd(q, &blkio_policy_cfq);
        kfree(cfqd);
 }