ref: fef5c8e4caf7a673e81d733c11e6410f8e427623
parent: 40d71baf7f44b17fcf323ebed8b835d86f340e84
author: cinap_lenrek <cinap_lenrek@felloff.net>
date: Fri Feb 21 00:29:43 EST 2014
aux/listen: rfork with RFREND child processes handling the connection should be all independent of each another and not share rendezvous group. the rendezvous group sharing caused a bug in exportfs when we switched from using pid to memory address as rendezvous tag.
--- a/sys/src/cmd/aux/listen.c
+++ b/sys/src/cmd/aux/listen.c
@@ -456,7 +456,7 @@
/*
* start a subprocess for the connection
*/
- switch(rfork(RFFDG|RFPROC|RFMEM|RFENVG|RFNAMEG|RFNOTEG|nowait)){
+ switch(rfork(RFFDG|RFPROC|RFMEM|RFENVG|RFNAMEG|RFNOTEG|RFREND|nowait)){
case -1:
reject(nctl, ndir, "host overloaded");
close(nctl);
--- a/sys/src/cmd/aux/listen1.c
+++ b/sys/src/cmd/aux/listen1.c
@@ -118,7 +118,7 @@
if(nctl < 0)
sysfatal("listen %s: %r", argv[0]);
- switch(rfork(RFFDG|RFPROC|RFMEM|RFENVG|RFNAMEG|RFNOTEG|nowait)){
+ switch(rfork(RFFDG|RFPROC|RFMEM|RFENVG|RFNAMEG|RFNOTEG|RFREND|nowait)){
case -1:
reject(nctl, ndir, "host overloaded");
close(nctl);