diff options
Diffstat (limited to 'kernel/cgroup.c')
| -rw-r--r-- | kernel/cgroup.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/kernel/cgroup.c b/kernel/cgroup.c index 2418b6e71a85..8bd9cfdc70d7 100644 --- a/kernel/cgroup.c +++ b/kernel/cgroup.c | |||
| @@ -2039,7 +2039,7 @@ static int cgroup_attach_task(struct cgroup *cgrp, struct task_struct *tsk, | |||
| 2039 | 2039 | ||
| 2040 | /* @tsk either already exited or can't exit until the end */ | 2040 | /* @tsk either already exited or can't exit until the end */ |
| 2041 | if (tsk->flags & PF_EXITING) | 2041 | if (tsk->flags & PF_EXITING) |
| 2042 | continue; | 2042 | goto next; |
| 2043 | 2043 | ||
| 2044 | /* as per above, nr_threads may decrease, but not increase. */ | 2044 | /* as per above, nr_threads may decrease, but not increase. */ |
| 2045 | BUG_ON(i >= group_size); | 2045 | BUG_ON(i >= group_size); |
| @@ -2047,7 +2047,7 @@ static int cgroup_attach_task(struct cgroup *cgrp, struct task_struct *tsk, | |||
| 2047 | ent.cgrp = task_cgroup_from_root(tsk, root); | 2047 | ent.cgrp = task_cgroup_from_root(tsk, root); |
| 2048 | /* nothing to do if this task is already in the cgroup */ | 2048 | /* nothing to do if this task is already in the cgroup */ |
| 2049 | if (ent.cgrp == cgrp) | 2049 | if (ent.cgrp == cgrp) |
| 2050 | continue; | 2050 | goto next; |
| 2051 | /* | 2051 | /* |
| 2052 | * saying GFP_ATOMIC has no effect here because we did prealloc | 2052 | * saying GFP_ATOMIC has no effect here because we did prealloc |
| 2053 | * earlier, but it's good form to communicate our expectations. | 2053 | * 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, | |||
| 2055 | retval = flex_array_put(group, i, &ent, GFP_ATOMIC); | 2055 | retval = flex_array_put(group, i, &ent, GFP_ATOMIC); |
| 2056 | BUG_ON(retval != 0); | 2056 | BUG_ON(retval != 0); |
| 2057 | i++; | 2057 | i++; |
| 2058 | 2058 | next: | |
| 2059 | if (!threadgroup) | 2059 | if (!threadgroup) |
| 2060 | break; | 2060 | break; |
| 2061 | } while_each_thread(leader, tsk); | 2061 | } while_each_thread(leader, tsk); |
| @@ -3188,11 +3188,9 @@ css_next_descendant_post(struct cgroup_subsys_state *pos, | |||
| 3188 | 3188 | ||
| 3189 | WARN_ON_ONCE(!rcu_read_lock_held()); | 3189 | WARN_ON_ONCE(!rcu_read_lock_held()); |
| 3190 | 3190 | ||
| 3191 | /* if first iteration, visit the leftmost descendant */ | 3191 | /* if first iteration, visit leftmost descendant which may be @root */ |
| 3192 | if (!pos) { | 3192 | if (!pos) |
| 3193 | next = css_leftmost_descendant(root); | 3193 | return css_leftmost_descendant(root); |
| 3194 | return next != root ? next : NULL; | ||
| 3195 | } | ||
| 3196 | 3194 | ||
| 3197 | /* if we visited @root, we're done */ | 3195 | /* if we visited @root, we're done */ |
| 3198 | if (pos == root) | 3196 | if (pos == root) |
