summaryrefslogtreecommitdiff
path: root/usr/src/uts/intel/ia32/os/syscall.c
diff options
context:
space:
mode:
authorraf <none@none>2006-12-13 11:41:29 -0800
committerraf <none@none>2006-12-13 11:41:29 -0800
commit657b1f3d64bcf8eaa2385dba72a6047f089433b2 (patch)
treef39954fcde5cecefa713fa403e7e4b55a83f7c0d /usr/src/uts/intel/ia32/os/syscall.c
parent7b55fa8ea6046becb3b72f8886a503979c322084 (diff)
downloadillumos-joyent-657b1f3d64bcf8eaa2385dba72a6047f089433b2.tar.gz
PSARC 2006/659 fork extensions
6497356 fork extensions --HG-- rename : usr/src/lib/libc/amd64/sys/forkall.s => usr/src/lib/libc/amd64/sys/forkallx.s rename : usr/src/lib/libc/amd64/sys/fork1.s => usr/src/lib/libc/amd64/sys/forkx.s rename : usr/src/lib/libc/amd64/sys/vfork.s => usr/src/lib/libc/amd64/sys/vforkx.s rename : usr/src/lib/libc/i386/sys/forkall.s => usr/src/lib/libc/i386/sys/forkallx.s rename : usr/src/lib/libc/i386/sys/fork1.s => usr/src/lib/libc/i386/sys/forkx.s rename : usr/src/lib/libc/i386/sys/vfork.s => usr/src/lib/libc/i386/sys/vforkx.s rename : usr/src/lib/libc/sparc/sys/forkall.s => usr/src/lib/libc/sparc/sys/forkallx.s rename : usr/src/lib/libc/sparc/sys/fork1.s => usr/src/lib/libc/sparc/sys/forkx.s rename : usr/src/lib/libc/sparc/sys/vfork.s => usr/src/lib/libc/sparc/sys/vforkx.s
Diffstat (limited to 'usr/src/uts/intel/ia32/os/syscall.c')
-rw-r--r--usr/src/uts/intel/ia32/os/syscall.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/usr/src/uts/intel/ia32/os/syscall.c b/usr/src/uts/intel/ia32/os/syscall.c
index 965fc07c1d..a78fbc62a6 100644
--- a/usr/src/uts/intel/ia32/os/syscall.c
+++ b/usr/src/uts/intel/ia32/os/syscall.c
@@ -603,8 +603,11 @@ post_syscall(long rval1, long rval2)
* This code must be here and not in the bowels of the system
* so that /proc can intercept exit from vfork in a timely way.
*/
- if (code == SYS_vfork && rp->r_r1 == 0 && error == 0)
+ if (p->p_flag & SVFPARENT) {
+ ASSERT(code == SYS_vfork || code == SYS_forksys);
+ ASSERT(rp->r_r1 == 0 && error == 0);
vfwait((pid_t)rval1);
+ }
/*
* If profiling is active, bill the current PC in user-land