summaryrefslogtreecommitdiff
path: root/kernel/fork.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 18:13:54 -0800
committerLinus Torvalds <torvalds@athlon.transmeta.com>2002-02-04 18:13:54 -0800
commit4095b99c09e3db837b17f031da096a0213cdd527 (patch)
tree5827f5d8eae0a6bb9902de55ed712f5db0b27fb7 /kernel/fork.c
parented6eefe4382ab3a72d70922d401b7c8003513f13 (diff)
v2.4.3.7 -> v2.4.3.8
- Al Viro: fix d_flags race between low-level fs and VFS layer. - David Miller: sparc updates - S390 update
Diffstat (limited to 'kernel/fork.c')
-rw-r--r--kernel/fork.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/fork.c b/kernel/fork.c
index 4b7ab6283fdb..74b3ee7ca8cd 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -652,7 +652,7 @@ int do_fork(unsigned long clone_flags, unsigned long stack_start,
goto bad_fork_cleanup_sighand;
retval = copy_thread(0, clone_flags, stack_start, stack_size, p, regs);
if (retval)
- goto bad_fork_cleanup_sighand;
+ goto bad_fork_cleanup_mm;
p->semundo = NULL;
/* Our parent execution domain becomes current domain
@@ -708,6 +708,8 @@ fork_out:
down(&sem);
return retval;
+bad_fork_cleanup_mm:
+ exit_mm(p);
bad_fork_cleanup_sighand:
exit_sighand(p);
bad_fork_cleanup_fs: