cgroup: add css_set->dfl_cgrp
authorTejun Heo <tj@kernel.org>
Wed, 23 Apr 2014 15:13:16 +0000 (11:13 -0400)
committerTejun Heo <tj@kernel.org>
Wed, 23 Apr 2014 15:13:16 +0000 (11:13 -0400)
To implement the unified hierarchy behavior, we'll need to be able to
determine the associated cgroup on the default hierarchy from css_set.
Let's add css_set->dfl_cgrp so that it can be accessed conveniently
and efficiently.

Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Li Zefan <lizefan@huawei.com>
include/linux/cgroup.h
kernel/cgroup.c

index 18fcae3..c49d161 100644 (file)
@@ -354,6 +354,9 @@ struct css_set {
         */
        struct list_head cgrp_links;
 
+       /* the default cgroup associated with this css_set */
+       struct cgroup *dfl_cgrp;
+
        /*
         * Set of subsystem states, one for each subsystem. This array is
         * immutable after creation apart from the init_css_set during
index 2a4f88d..c66bfc8 100644 (file)
@@ -651,6 +651,10 @@ static void link_css_set(struct list_head *tmp_links, struct css_set *cset,
        struct cgrp_cset_link *link;
 
        BUG_ON(list_empty(tmp_links));
+
+       if (cgroup_on_dfl(cgrp))
+               cset->dfl_cgrp = cgrp;
+
        link = list_first_entry(tmp_links, struct cgrp_cset_link, cset_link);
        link->cset = cset;
        link->cgrp = cgrp;