]> git.kernelconcepts.de Git - karo-tx-linux.git/commitdiff
blkcg: add blkg_policy_data->plid
authorTejun Heo <tj@kernel.org>
Wed, 9 Jan 2013 16:05:12 +0000 (08:05 -0800)
committerTejun Heo <tj@kernel.org>
Wed, 9 Jan 2013 16:05:12 +0000 (08:05 -0800)
Add pd->plid so that the policy a pd belongs to can be identified
easily.  This will be used to implement hierarchical blkg_[rw]stats.

Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Vivek Goyal <vgoyal@redhat.com>
block/blk-cgroup.c
block/blk-cgroup.h

index 10e1df9da46ee6ae7c0da74a567ae54726094fff..3a8de321d1f69cafc2ae24f8090a73c865109a53 100644 (file)
@@ -113,6 +113,7 @@ static struct blkcg_gq *blkg_alloc(struct blkcg *blkcg, struct request_queue *q,
 
                blkg->pd[i] = pd;
                pd->blkg = blkg;
+               pd->plid = i;
 
                /* invoke per-policy init */
                if (pol->pd_init_fn)
@@ -908,6 +909,7 @@ int blkcg_activate_policy(struct request_queue *q,
 
                blkg->pd[pol->plid] = pd;
                pd->blkg = blkg;
+               pd->plid = pol->plid;
                pol->pd_init_fn(blkg);
 
                spin_unlock(&blkg->blkcg->lock);
index 24462258200ec101110d6733db31030848749911..40f5b9768aacabdc31b9c1ac834548a7492841fe 100644 (file)
@@ -81,8 +81,9 @@ struct blkg_rwstat {
  * beginning and pd_size can't be smaller than pd.
  */
 struct blkg_policy_data {
-       /* the blkg this per-policy data belongs to */
+       /* the blkg and policy id this per-policy data belongs to */
        struct blkcg_gq                 *blkg;
+       int                             plid;
 
        /* used during policy activation */
        struct list_head                alloc_node;