* set for a task.
  */
 struct css_set {
-       /* Reference count */
-       atomic_t refcount;
-
        /*
-        * List running through all cgroup groups in the same hash
-        * slot. Protected by css_set_lock
+        * Set of subsystem states, one for each subsystem. This array is
+        * immutable after creation apart from the init_css_set during
+        * subsystem registration (at boot time).
         */
-       struct hlist_node hlist;
+       struct cgroup_subsys_state *subsys[CGROUP_SUBSYS_COUNT];
+
+       /* reference count */
+       atomic_t refcount;
+
+       /* the default cgroup associated with this css_set */
+       struct cgroup *dfl_cgrp;
 
        /*
         * Lists running through all tasks using this cgroup group.
        struct list_head tasks;
        struct list_head mg_tasks;
 
+       /* all css_task_iters currently walking this cset */
+       struct list_head task_iters;
+
        /*
-        * List of cgrp_cset_links pointing at cgroups referenced from this
-        * css_set.  Protected by css_set_lock.
+        * On the default hierarhcy, ->subsys[ssid] may point to a css
+        * attached to an ancestor instead of the cgroup this css_set is
+        * associated with.  The following node is anchored at
+        * ->subsys[ssid]->cgroup->e_csets[ssid] and provides a way to
+        * iterate through all css's attached to a given cgroup.
         */
-       struct list_head cgrp_links;
+       struct list_head e_cset_node[CGROUP_SUBSYS_COUNT];
 
-       /* the default cgroup associated with this css_set */
-       struct cgroup *dfl_cgrp;
+       /*
+        * List running through all cgroup groups in the same hash
+        * slot. Protected by css_set_lock
+        */
+       struct hlist_node hlist;
 
        /*
-        * Set of subsystem states, one for each subsystem. This array is
-        * immutable after creation apart from the init_css_set during
-        * subsystem registration (at boot time).
+        * List of cgrp_cset_links pointing at cgroups referenced from this
+        * css_set.  Protected by css_set_lock.
         */
-       struct cgroup_subsys_state *subsys[CGROUP_SUBSYS_COUNT];
+       struct list_head cgrp_links;
 
        /*
         * List of csets participating in the on-going migration either as
        struct cgroup *mg_dst_cgrp;
        struct css_set *mg_dst_cset;
 
-       /*
-        * On the default hierarhcy, ->subsys[ssid] may point to a css
-        * attached to an ancestor instead of the cgroup this css_set is
-        * associated with.  The following node is anchored at
-        * ->subsys[ssid]->cgroup->e_csets[ssid] and provides a way to
-        * iterate through all css's attached to a given cgroup.
-        */
-       struct list_head e_cset_node[CGROUP_SUBSYS_COUNT];
-
-       /* all css_task_iters currently walking this cset */
-       struct list_head task_iters;
-
        /* dead and being drained, ignore for migration */
        bool dead;
 
 
  */
 struct css_set init_css_set = {
        .refcount               = ATOMIC_INIT(1),
-       .cgrp_links             = LIST_HEAD_INIT(init_css_set.cgrp_links),
        .tasks                  = LIST_HEAD_INIT(init_css_set.tasks),
        .mg_tasks               = LIST_HEAD_INIT(init_css_set.mg_tasks),
+       .task_iters             = LIST_HEAD_INIT(init_css_set.task_iters),
+       .cgrp_links             = LIST_HEAD_INIT(init_css_set.cgrp_links),
        .mg_preload_node        = LIST_HEAD_INIT(init_css_set.mg_preload_node),
        .mg_node                = LIST_HEAD_INIT(init_css_set.mg_node),
-       .task_iters             = LIST_HEAD_INIT(init_css_set.task_iters),
 };
 
 static int css_set_count       = 1;    /* 1 for init_css_set */
        }
 
        atomic_set(&cset->refcount, 1);
-       INIT_LIST_HEAD(&cset->cgrp_links);
        INIT_LIST_HEAD(&cset->tasks);
        INIT_LIST_HEAD(&cset->mg_tasks);
-       INIT_LIST_HEAD(&cset->mg_preload_node);
-       INIT_LIST_HEAD(&cset->mg_node);
        INIT_LIST_HEAD(&cset->task_iters);
        INIT_HLIST_NODE(&cset->hlist);
+       INIT_LIST_HEAD(&cset->cgrp_links);
+       INIT_LIST_HEAD(&cset->mg_preload_node);
+       INIT_LIST_HEAD(&cset->mg_node);
 
        /* Copy the set of subsystem state objects generated in
         * find_existing_css_set() */
        struct task_struct *task;
        int ret;
 
+       if (cgroup_on_dfl(to))
+               return -EINVAL;
+
        if (!cgroup_may_migrate_to(to))
                return -EBUSY;