ref: 43c93c794b08a3e42ed20644e85243ea22c61c8b
parent: 3af3bd2b2385675e8dd6beb878f94a0a69c19ee2
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Sun Mar 8 00:52:23 EST 2020
lib9p: restore previous behaviour of fd group sharing it appears that too many fileservers rely on the fileserver process sharing the filedescriptors with children of the caller to postmntsrv() or threadpostmntsrv(). restoring previous behaviour for now.
--- a/sys/src/lib9p/post.c
+++ b/sys/src/lib9p/post.c
@@ -23,8 +23,11 @@
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)
close(s->outfd);
@@ -52,8 +55,11 @@
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)
close(s->outfd);
@@ -72,6 +78,7 @@
Srv *s;
s = v;
+ rendezvous(0, 0);
close(s->srvfd);
srv(s);
}
--
⑨