From 657b1f3d64bcf8eaa2385dba72a6047f089433b2 Mon Sep 17 00:00:00 2001 From: raf Date: Wed, 13 Dec 2006 11:41:29 -0800 Subject: 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 --- usr/src/uts/intel/ia32/os/syscall.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'usr/src/uts/intel/ia32/os') 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 -- cgit v1.2.3