|
@@ -2039,7 +2039,7 @@ static int cgroup_attach_task(struct cgroup *cgrp, struct task_struct *tsk,
|
|
|
|
|
|
/* @tsk either already exited or can't exit until the end */
|
|
|
if (tsk->flags & PF_EXITING)
|
|
|
- continue;
|
|
|
+ goto next;
|
|
|
|
|
|
/* as per above, nr_threads may decrease, but not increase. */
|
|
|
BUG_ON(i >= group_size);
|
|
@@ -2047,7 +2047,7 @@ static int cgroup_attach_task(struct cgroup *cgrp, struct task_struct *tsk,
|
|
|
ent.cgrp = task_cgroup_from_root(tsk, root);
|
|
|
/* nothing to do if this task is already in the cgroup */
|
|
|
if (ent.cgrp == cgrp)
|
|
|
- continue;
|
|
|
+ goto next;
|
|
|
/*
|
|
|
* saying GFP_ATOMIC has no effect here because we did prealloc
|
|
|
* earlier, but it's good form to communicate our expectations.
|
|
@@ -2055,7 +2055,7 @@ static int cgroup_attach_task(struct cgroup *cgrp, struct task_struct *tsk,
|
|
|
retval = flex_array_put(group, i, &ent, GFP_ATOMIC);
|
|
|
BUG_ON(retval != 0);
|
|
|
i++;
|
|
|
-
|
|
|
+ next:
|
|
|
if (!threadgroup)
|
|
|
break;
|
|
|
} while_each_thread(leader, tsk);
|
|
@@ -3188,11 +3188,9 @@ css_next_descendant_post(struct cgroup_subsys_state *pos,
|
|
|
|
|
|
WARN_ON_ONCE(!rcu_read_lock_held());
|
|
|
|
|
|
- /* if first iteration, visit the leftmost descendant */
|
|
|
- if (!pos) {
|
|
|
- next = css_leftmost_descendant(root);
|
|
|
- return next != root ? next : NULL;
|
|
|
- }
|
|
|
+ /* if first iteration, visit leftmost descendant which may be @root */
|
|
|
+ if (!pos)
|
|
|
+ return css_leftmost_descendant(root);
|
|
|
|
|
|
/* if we visited @root, we're done */
|
|
|
if (pos == root)
|