Commit 1c5354de authored by Mike Galbraith's avatar Mike Galbraith Committed by Ingo Molnar

sched: Move sched_autogroup_exit() to free_signal_struct()

Per Oleg's suggestion, undo fork failure free/put_signal_struct change,
and move sched_autogroup_exit() to free_signal_struct() instead.
Signed-off-by: default avatarMike Galbraith <efault@gmx.de>
Reviewed-by: default avatarOleg Nesterov <oleg@redhat.com>
Signed-off-by: default avatarPeter Zijlstra <a.p.zijlstra@chello.nl>
LKML-Reference: <1294222564.8369.6.camel@marge.simson.net>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent e9aa1dd1
...@@ -169,15 +169,14 @@ EXPORT_SYMBOL(free_task); ...@@ -169,15 +169,14 @@ EXPORT_SYMBOL(free_task);
static inline void free_signal_struct(struct signal_struct *sig) static inline void free_signal_struct(struct signal_struct *sig)
{ {
taskstats_tgid_free(sig); taskstats_tgid_free(sig);
sched_autogroup_exit(sig);
kmem_cache_free(signal_cachep, sig); kmem_cache_free(signal_cachep, sig);
} }
static inline void put_signal_struct(struct signal_struct *sig) static inline void put_signal_struct(struct signal_struct *sig)
{ {
if (atomic_dec_and_test(&sig->sigcnt)) { if (atomic_dec_and_test(&sig->sigcnt))
sched_autogroup_exit(sig);
free_signal_struct(sig); free_signal_struct(sig);
}
} }
void __put_task_struct(struct task_struct *tsk) void __put_task_struct(struct task_struct *tsk)
...@@ -1318,7 +1317,7 @@ static struct task_struct *copy_process(unsigned long clone_flags, ...@@ -1318,7 +1317,7 @@ static struct task_struct *copy_process(unsigned long clone_flags,
} }
bad_fork_cleanup_signal: bad_fork_cleanup_signal:
if (!(clone_flags & CLONE_THREAD)) if (!(clone_flags & CLONE_THREAD))
put_signal_struct(p->signal); free_signal_struct(p->signal);
bad_fork_cleanup_sighand: bad_fork_cleanup_sighand:
__cleanup_sighand(p->sighand); __cleanup_sighand(p->sighand);
bad_fork_cleanup_fs: bad_fork_cleanup_fs:
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment