diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-07 17:55:48 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-07 17:55:48 -0500 |
commit | e744070fd4ff9d3114277e52d77afa21579adce2 (patch) | |
tree | 5f397c684c61a50bd47014abfe685fd6c3d09d8c /kernel/fork.c | |
parent | d004e4d3322340b6433caaef4a47ab8c933afb70 (diff) | |
parent | c9b5f501ef1580faa30c40c644b7691870462201 (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.c | 7 |
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); | |||
169 | static inline void free_signal_struct(struct signal_struct *sig) | 169 | static 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 | ||
175 | static inline void put_signal_struct(struct signal_struct *sig) | 176 | static 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 | ||
183 | void __put_task_struct(struct task_struct *tsk) | 182 | void __put_task_struct(struct task_struct *tsk) |
@@ -1318,7 +1317,7 @@ bad_fork_cleanup_mm: | |||
1318 | } | 1317 | } |
1319 | bad_fork_cleanup_signal: | 1318 | bad_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); |
1322 | bad_fork_cleanup_sighand: | 1321 | bad_fork_cleanup_sighand: |
1323 | __cleanup_sighand(p->sighand); | 1322 | __cleanup_sighand(p->sighand); |
1324 | bad_fork_cleanup_fs: | 1323 | bad_fork_cleanup_fs: |