summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sys/src/lib9p/post.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/sys/src/lib9p/post.c b/sys/src/lib9p/post.c
index 0241c3157..65a98e1f6 100644
--- a/sys/src/lib9p/post.c
+++ b/sys/src/lib9p/post.c
@@ -23,7 +23,10 @@ _postmountsrv(Srv *s, char *name, char *mtpt, int flag)
if(_forker == nil)
sysfatal("no forker");
- _forker(postproc, s, RFNAMEG|RFFDG|RFNOTEG);
+ _forker(postproc, s, RFNAMEG|RFNOTEG);
+
+ rfork(RFFDG);
+ rendezvous(0, 0);
close(s->infd);
if(s->infd != s->outfd)
@@ -52,7 +55,10 @@ _postsharesrv(Srv *s, char *name, char *mtpt, char *desc)
if(_forker == nil)
sysfatal("no forker");
- _forker(postproc, s, RFNAMEG|RFFDG|RFNOTEG);
+ _forker(postproc, s, RFNAMEG|RFNOTEG);
+
+ rfork(RFFDG);
+ rendezvous(0, 0);
close(s->infd);
if(s->infd != s->outfd)
@@ -72,6 +78,7 @@ postproc(void *v)
Srv *s;
s = v;
+ rendezvous(0, 0);
close(s->srvfd);
srv(s);
}