};
 
 struct cgroup {
+       /* self css with NULL ->ss, points back to this cgroup */
+       struct cgroup_subsys_state self;
+
        unsigned long flags;            /* "unsigned long" so bitops work */
 
        /*
        struct list_head pidlists;
        struct mutex pidlist_mutex;
 
-       /* dummy css with NULL ->ss, points back to this cgroup */
-       struct cgroup_subsys_state dummy_css;
-
        /* For css percpu_ref killing and RCU-protected deletion */
        struct rcu_head rcu_head;
        struct work_struct destroy_work;
 
 /**
  * cgroup_css - obtain a cgroup's css for the specified subsystem
  * @cgrp: the cgroup of interest
- * @ss: the subsystem of interest (%NULL returns the dummy_css)
+ * @ss: the subsystem of interest (%NULL returns @cgrp->self)
  *
  * Return @cgrp's css (cgroup_subsys_state) associated with @ss.  This
  * function must be called either under cgroup_mutex or rcu_read_lock() and
                return rcu_dereference_check(cgrp->subsys[ss->id],
                                        lockdep_is_held(&cgroup_mutex));
        else
-               return &cgrp->dummy_css;
+               return &cgrp->self;
 }
 
 /**
  * cgroup_e_css - obtain a cgroup's effective css for the specified subsystem
  * @cgrp: the cgroup of interest
- * @ss: the subsystem of interest (%NULL returns the dummy_css)
+ * @ss: the subsystem of interest (%NULL returns @cgrp->self)
  *
  * Similar to cgroup_css() but returns the effctive css, which is defined
  * as the matching css of the nearest ancestor including self which has @ss
        lockdep_assert_held(&cgroup_mutex);
 
        if (!ss)
-               return &cgrp->dummy_css;
+               return &cgrp->self;
 
        if (!(cgrp->root->subsys_mask & (1 << ss->id)))
                return NULL;
        if (cft->ss)
                return rcu_dereference_raw(cgrp->subsys[cft->ss->id]);
        else
-               return &cgrp->dummy_css;
+               return &cgrp->self;
 }
 EXPORT_SYMBOL_GPL(of_css);
 
        INIT_LIST_HEAD(&cgrp->release_list);
        INIT_LIST_HEAD(&cgrp->pidlists);
        mutex_init(&cgrp->pidlist_mutex);
-       cgrp->dummy_css.cgroup = cgrp;
+       cgrp->self.cgroup = cgrp;
 
        for_each_subsys(ss, ssid)
                INIT_LIST_HEAD(&cgrp->e_csets[ssid]);
         * ->can_attach() fails.
         */
        do {
-               css_task_iter_start(&from->dummy_css, &it);
+               css_task_iter_start(&from->self, &it);
                task = css_task_iter_next(&it);
                if (task)
                        get_task_struct(task);
        if (!array)
                return -ENOMEM;
        /* now, populate the array */
-       css_task_iter_start(&cgrp->dummy_css, &it);
+       css_task_iter_start(&cgrp->self, &it);
        while ((tsk = css_task_iter_next(&it))) {
                if (unlikely(n == length))
                        break;
        }
        rcu_read_unlock();
 
-       css_task_iter_start(&cgrp->dummy_css, &it);
+       css_task_iter_start(&cgrp->self, &it);
        while ((tsk = css_task_iter_next(&it))) {
                switch (tsk->state) {
                case TASK_RUNNING:
        init_cgroup_housekeeping(cgrp);
 
        cgrp->parent = parent;
-       cgrp->dummy_css.parent = &parent->dummy_css;
+       cgrp->self.parent = &parent->self;
        cgrp->root = root;
 
        if (notify_on_release(parent))