shithub: riscv

Download patch

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);