aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/fork.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2012-01-09 15:59:24 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2012-01-09 15:59:24 -0500
commitdb0c2bf69aa095d4a6de7b1145f29fe9a7c0f6a3 (patch)
tree8f38957c01b18edddd44d49ecc3beeac08a20b4e /kernel/fork.c
parentac69e0928054ff29a5049902fb477f9c7605c773 (diff)
parent0d19ea866562e46989412a0676412fa0983c9ce7 (diff)
Merge branch 'for-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup
* 'for-3.3' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup: (21 commits) cgroup: fix to allow mounting a hierarchy by name cgroup: move assignement out of condition in cgroup_attach_proc() cgroup: Remove task_lock() from cgroup_post_fork() cgroup: add sparse annotation to cgroup_iter_start() and cgroup_iter_end() cgroup: mark cgroup_rmdir_waitq and cgroup_attach_proc() as static cgroup: only need to check oldcgrp==newgrp once cgroup: remove redundant get/put of task struct cgroup: remove redundant get/put of old css_set from migrate cgroup: Remove unnecessary task_lock before fetching css_set on migration cgroup: Drop task_lock(parent) on cgroup_fork() cgroups: remove redundant get/put of css_set from css_set_check_fetched() resource cgroups: remove bogus cast cgroup: kill subsys->can_attach_task(), pre_attach() and attach_task() cgroup, cpuset: don't use ss->pre_attach() cgroup: don't use subsys->can_attach_task() or ->attach_task() cgroup: introduce cgroup_taskset and use it in subsys->can_attach(), cancel_attach() and attach() cgroup: improve old cgroup handling in cgroup_attach_proc() cgroup: always lock threadgroup during migration threadgroup: extend threadgroup_lock() to cover exit and exec threadgroup: rename signal->threadgroup_fork_lock to ->group_rwsem ... Fix up conflict in kernel/cgroup.c due to commit e0197aae59e5: "cgroups: fix a css_set not found bug in cgroup_attach_proc" that already mentioned that the bug is fixed (differently) in Tejun's cgroup patchset. This one, in other words.
Diffstat (limited to 'kernel/fork.c')
-rw-r--r--kernel/fork.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/kernel/fork.c b/kernel/fork.c
index f34f894c4b98..b00711ce7c13 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -972,7 +972,7 @@ static int copy_signal(unsigned long clone_flags, struct task_struct *tsk)
972 sched_autogroup_fork(sig); 972 sched_autogroup_fork(sig);
973 973
974#ifdef CONFIG_CGROUPS 974#ifdef CONFIG_CGROUPS
975 init_rwsem(&sig->threadgroup_fork_lock); 975 init_rwsem(&sig->group_rwsem);
976#endif 976#endif
977 977
978 sig->oom_adj = current->signal->oom_adj; 978 sig->oom_adj = current->signal->oom_adj;
@@ -1153,7 +1153,7 @@ static struct task_struct *copy_process(unsigned long clone_flags,
1153 p->io_context = NULL; 1153 p->io_context = NULL;
1154 p->audit_context = NULL; 1154 p->audit_context = NULL;
1155 if (clone_flags & CLONE_THREAD) 1155 if (clone_flags & CLONE_THREAD)
1156 threadgroup_fork_read_lock(current); 1156 threadgroup_change_begin(current);
1157 cgroup_fork(p); 1157 cgroup_fork(p);
1158#ifdef CONFIG_NUMA 1158#ifdef CONFIG_NUMA
1159 p->mempolicy = mpol_dup(p->mempolicy); 1159 p->mempolicy = mpol_dup(p->mempolicy);
@@ -1368,7 +1368,7 @@ static struct task_struct *copy_process(unsigned long clone_flags,
1368 proc_fork_connector(p); 1368 proc_fork_connector(p);
1369 cgroup_post_fork(p); 1369 cgroup_post_fork(p);
1370 if (clone_flags & CLONE_THREAD) 1370 if (clone_flags & CLONE_THREAD)
1371 threadgroup_fork_read_unlock(current); 1371 threadgroup_change_end(current);
1372 perf_event_fork(p); 1372 perf_event_fork(p);
1373 return p; 1373 return p;
1374 1374
@@ -1403,7 +1403,7 @@ bad_fork_cleanup_policy:
1403bad_fork_cleanup_cgroup: 1403bad_fork_cleanup_cgroup:
1404#endif 1404#endif
1405 if (clone_flags & CLONE_THREAD) 1405 if (clone_flags & CLONE_THREAD)
1406 threadgroup_fork_read_unlock(current); 1406 threadgroup_change_end(current);
1407 cgroup_exit(p, cgroup_callbacks_done); 1407 cgroup_exit(p, cgroup_callbacks_done);
1408 delayacct_tsk_free(p); 1408 delayacct_tsk_free(p);
1409 module_put(task_thread_info(p)->exec_domain->module); 1409 module_put(task_thread_info(p)->exec_domain->module);