diff options
author | Andrew Morton <akpm@osdl.org> | 2005-11-28 16:43:48 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-11-28 17:42:23 -0500 |
commit | c13cf856cbe16aec3007604dc013cbf3a16c6686 (patch) | |
tree | 0d05f46a20de1abf59c02af4e819ccfae0a8d009 /kernel/fork.c | |
parent | ff88a3b2f56ae4f3296ea957ea38f99f8bd0e5a8 (diff) |
[PATCH] fork.c: proc_fork_connector() called under write_lock()
Don't do that - it does GFP_KERNEL allocations, for a start.
(Reported by Guillaume Thouvenin <guillaume.thouvenin@bull.net>)
Acked-by: Matt Helsley <matthltc@us.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel/fork.c')
-rw-r--r-- | kernel/fork.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/fork.c b/kernel/fork.c index 1c1cf8dc396b..d0d49879ab7c 100644 --- a/kernel/fork.c +++ b/kernel/fork.c | |||
@@ -1135,13 +1135,13 @@ static task_t *copy_process(unsigned long clone_flags, | |||
1135 | __get_cpu_var(process_counts)++; | 1135 | __get_cpu_var(process_counts)++; |
1136 | } | 1136 | } |
1137 | 1137 | ||
1138 | proc_fork_connector(p); | ||
1139 | if (!current->signal->tty && p->signal->tty) | 1138 | if (!current->signal->tty && p->signal->tty) |
1140 | p->signal->tty = NULL; | 1139 | p->signal->tty = NULL; |
1141 | 1140 | ||
1142 | nr_threads++; | 1141 | nr_threads++; |
1143 | total_forks++; | 1142 | total_forks++; |
1144 | write_unlock_irq(&tasklist_lock); | 1143 | write_unlock_irq(&tasklist_lock); |
1144 | proc_fork_connector(p); | ||
1145 | retval = 0; | 1145 | retval = 0; |
1146 | 1146 | ||
1147 | fork_out: | 1147 | fork_out: |