aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/fork.c
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2005-11-28 16:43:48 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2005-11-28 17:42:23 -0500
commitc13cf856cbe16aec3007604dc013cbf3a16c6686 (patch)
tree0d05f46a20de1abf59c02af4e819ccfae0a8d009 /kernel/fork.c
parentff88a3b2f56ae4f3296ea957ea38f99f8bd0e5a8 (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.c2
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
1147fork_out: 1147fork_out: