shithub: riscv

Download patch

ref: df6c19083157e4a79753c89e7b6d12d3dca39f09
parent: 19dc7c2097cbbdeeef02ba79161a2c67f3ba3987
author: cinap_lenrek <[email protected]>
date: Thu Jan 5 21:54:26 EST 2017

cfs: fix cfsctl interaction with mount cache (mount -C flag)

the root fileserver is mounted with the mount cache enabled
causing the contents of the cfsctl file to be cached as well
leading to wrong results. so after we generated the new stat
buffer, we increment the qid.vers so the cache starts out
clean.

--- a/sys/src/cmd/cfs/cfs.c
+++ b/sys/src/cmd/cfs/cfs.c
@@ -438,10 +438,11 @@
 			sendreply("does not exist");
 			return;
 		}
+		genstats();
+		ctlqid.vers++;
 		c.rhdr.qid = ctlqid;
 		c.rhdr.iounit = 0;
 		sendreply(0);
-		genstats();
 		return;
 	}
 	if(delegate() == 0){
@@ -650,7 +651,6 @@
 	Dir d;
 
 	if(statson && ctltest(mf)){
-		genstats();
 		d.qid = ctlqid;
 		d.mode = 0444;
 		d.length = statlen;	/* would be nice to do better */