aboutsummaryrefslogtreecommitdiff
path: root/src/lib9/rfork.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib9/rfork.c')
-rw-r--r--src/lib9/rfork.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/lib9/rfork.c b/src/lib9/rfork.c
index 270c3cdd..f3a21928 100644
--- a/src/lib9/rfork.c
+++ b/src/lib9/rfork.c
@@ -9,7 +9,7 @@ p9rfork(int flags)
if((flags&(RFPROC|RFFDG|RFMEM)) == (RFPROC|RFFDG)){
/* check other flags before we commit */
flags &= ~(RFPROC|RFFDG);
- if(flags & ~(RFNOTEG)){
+ if(flags & ~(RFNOTEG|RFNAMEG)){
werrstr("unknown flags %08ux in rfork", flags);
return -1;
}
@@ -17,11 +17,14 @@ p9rfork(int flags)
if(pid != 0)
return pid;
}
-
if(flags&RFPROC){
- werrstr("cannot use rfork to fork -- use ffork");
+ werrstr("cannot use rfork for shared memory -- use ffork");
return -1;
}
+ if(flags&RFNAMEG){
+ /* XXX set $NAMESPACE to a new directory */
+ flags &= ~RFNAMEG;
+ }
if(flags&RFNOTEG){
setpgid(0, getpid());
flags &= ~RFNOTEG;