aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/fork.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2011-01-07 17:55:48 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2011-01-07 17:55:48 -0500
commite744070fd4ff9d3114277e52d77afa21579adce2 (patch)
tree5f397c684c61a50bd47014abfe685fd6c3d09d8c /kernel/fork.c
parentd004e4d3322340b6433caaef4a47ab8c933afb70 (diff)
parentc9b5f501ef1580faa30c40c644b7691870462201 (diff)
Merge branch 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'sched-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: sched: Constify function scope static struct sched_param usage sched: Fix strncmp operation sched: Move sched_autogroup_exit() to free_signal_struct() sched: Fix struct autogroup memory leak sched: Mark autogroup_init() __init sched: Consolidate the name of root_task_group and init_task_group
Diffstat (limited to 'kernel/fork.c')
-rw-r--r--kernel/fork.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/kernel/fork.c b/kernel/fork.c
index 7d164e25b0f0..dc1a8bbcea7b 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -169,15 +169,14 @@ EXPORT_SYMBOL(free_task);
169static inline void free_signal_struct(struct signal_struct *sig) 169static inline void free_signal_struct(struct signal_struct *sig)
170{ 170{
171 taskstats_tgid_free(sig); 171 taskstats_tgid_free(sig);
172 sched_autogroup_exit(sig);
172 kmem_cache_free(signal_cachep, sig); 173 kmem_cache_free(signal_cachep, sig);
173} 174}
174 175
175static inline void put_signal_struct(struct signal_struct *sig) 176static inline void put_signal_struct(struct signal_struct *sig)
176{ 177{
177 if (atomic_dec_and_test(&sig->sigcnt)) { 178 if (atomic_dec_and_test(&sig->sigcnt))
178 sched_autogroup_exit(sig);
179 free_signal_struct(sig); 179 free_signal_struct(sig);
180 }
181} 180}
182 181
183void __put_task_struct(struct task_struct *tsk) 182void __put_task_struct(struct task_struct *tsk)
@@ -1318,7 +1317,7 @@ bad_fork_cleanup_mm:
1318 } 1317 }
1319bad_fork_cleanup_signal: 1318bad_fork_cleanup_signal:
1320 if (!(clone_flags & CLONE_THREAD)) 1319 if (!(clone_flags & CLONE_THREAD))
1321 put_signal_struct(p->signal); 1320 free_signal_struct(p->signal);
1322bad_fork_cleanup_sighand: 1321bad_fork_cleanup_sighand:
1323 __cleanup_sighand(p->sighand); 1322 __cleanup_sighand(p->sighand);
1324bad_fork_cleanup_fs: 1323bad_fork_cleanup_fs: