aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/cgroup.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/cgroup.c')
-rw-r--r--kernel/cgroup.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/kernel/cgroup.c b/kernel/cgroup.c
index 771d1b8aaae9..8ab800c7bac0 100644
--- a/kernel/cgroup.c
+++ b/kernel/cgroup.c
@@ -1331,9 +1331,13 @@ static void cgroup_enable_task_cg_lists(void)
1331 * We should check if the process is exiting, otherwise 1331 * We should check if the process is exiting, otherwise
1332 * it will race with cgroup_exit() in that the list 1332 * it will race with cgroup_exit() in that the list
1333 * entry won't be deleted though the process has exited. 1333 * entry won't be deleted though the process has exited.
1334 * Do it while holding siglock so that we don't end up
1335 * racing against cgroup_exit().
1334 */ 1336 */
1337 spin_lock_irq(&p->sighand->siglock);
1335 if (!(p->flags & PF_EXITING)) 1338 if (!(p->flags & PF_EXITING))
1336 list_add(&p->cg_list, &task_css_set(p)->tasks); 1339 list_add(&p->cg_list, &task_css_set(p)->tasks);
1340 spin_unlock_irq(&p->sighand->siglock);
1337 1341
1338 task_unlock(p); 1342 task_unlock(p);
1339 } while_each_thread(g, p); 1343 } while_each_thread(g, p);
@@ -3968,16 +3972,12 @@ static int __init cgroup_wq_init(void)
3968 /* 3972 /*
3969 * There isn't much point in executing destruction path in 3973 * There isn't much point in executing destruction path in
3970 * parallel. Good chunk is serialized with cgroup_mutex anyway. 3974 * parallel. Good chunk is serialized with cgroup_mutex anyway.
3971 * 3975 * Use 1 for @max_active.
3972 * XXX: Must be ordered to make sure parent is offlined after
3973 * children. The ordering requirement is for memcg where a
3974 * parent's offline may wait for a child's leading to deadlock. In
3975 * the long term, this should be fixed from memcg side.
3976 * 3976 *
3977 * We would prefer to do this in cgroup_init() above, but that 3977 * We would prefer to do this in cgroup_init() above, but that
3978 * is called before init_workqueues(): so leave this until after. 3978 * is called before init_workqueues(): so leave this until after.
3979 */ 3979 */
3980 cgroup_destroy_wq = alloc_ordered_workqueue("cgroup_destroy", 0); 3980 cgroup_destroy_wq = alloc_workqueue("cgroup_destroy", 0, 1);
3981 BUG_ON(!cgroup_destroy_wq); 3981 BUG_ON(!cgroup_destroy_wq);
3982 3982
3983 /* 3983 /*