|
@@ -1271,7 +1271,7 @@ static struct task_struct *copy_process(unsigned long clone_flags,
|
|
if (IS_ERR(p->mempolicy)) {
|
|
if (IS_ERR(p->mempolicy)) {
|
|
retval = PTR_ERR(p->mempolicy);
|
|
retval = PTR_ERR(p->mempolicy);
|
|
p->mempolicy = NULL;
|
|
p->mempolicy = NULL;
|
|
- goto bad_fork_cleanup_cgroup;
|
|
|
|
|
|
+ goto bad_fork_cleanup_threadgroup_lock;
|
|
}
|
|
}
|
|
mpol_fix_fork_child_flag(p);
|
|
mpol_fix_fork_child_flag(p);
|
|
#endif
|
|
#endif
|
|
@@ -1524,11 +1524,10 @@ bad_fork_cleanup_policy:
|
|
perf_event_free_task(p);
|
|
perf_event_free_task(p);
|
|
#ifdef CONFIG_NUMA
|
|
#ifdef CONFIG_NUMA
|
|
mpol_put(p->mempolicy);
|
|
mpol_put(p->mempolicy);
|
|
-bad_fork_cleanup_cgroup:
|
|
|
|
|
|
+bad_fork_cleanup_threadgroup_lock:
|
|
#endif
|
|
#endif
|
|
if (clone_flags & CLONE_THREAD)
|
|
if (clone_flags & CLONE_THREAD)
|
|
threadgroup_change_end(current);
|
|
threadgroup_change_end(current);
|
|
- cgroup_exit(p, 0);
|
|
|
|
delayacct_tsk_free(p);
|
|
delayacct_tsk_free(p);
|
|
module_put(task_thread_info(p)->exec_domain->module);
|
|
module_put(task_thread_info(p)->exec_domain->module);
|
|
bad_fork_cleanup_count:
|
|
bad_fork_cleanup_count:
|