summaryrefslogtreecommitdiff
path: root/kernel/fork.c
diff options
context:
space:
mode:
authorAndrew Morton <akpm@osdl.org>2005-11-28 13:43:48 -0800
committerLinus Torvalds <torvalds@g5.osdl.org>2005-11-28 14:42:23 -0800
commitc13cf856cbe16aec3007604dc013cbf3a16c6686 (patch)
tree0d05f46a20de1abf59c02af4e819ccfae0a8d009 /kernel/fork.c
parentff88a3b2f56ae4f3296ea957ea38f99f8bd0e5a8 (diff)
downloadlwn-c13cf856cbe16aec3007604dc013cbf3a16c6686.tar.gz
lwn-c13cf856cbe16aec3007604dc013cbf3a16c6686.zip
[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,
__get_cpu_var(process_counts)++;
}
- proc_fork_connector(p);
if (!current->signal->tty && p->signal->tty)
p->signal->tty = NULL;
nr_threads++;
total_forks++;
write_unlock_irq(&tasklist_lock);
+ proc_fork_connector(p);
retval = 0;
fork_out: