summaryrefslogtreecommitdiff
path: root/sys/src/cmd/cfs/cfs.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@felloff.net>2017-01-06 02:54:26 +0100
committercinap_lenrek <cinap_lenrek@felloff.net>2017-01-06 02:54:26 +0100
commitdf6c19083157e4a79753c89e7b6d12d3dca39f09 (patch)
treeadfaee65af09ae9a04ff20e53825c3698893c55a /sys/src/cmd/cfs/cfs.c
parent19dc7c2097cbbdeeef02ba79161a2c67f3ba3987 (diff)
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.
Diffstat (limited to 'sys/src/cmd/cfs/cfs.c')
-rw-r--r--sys/src/cmd/cfs/cfs.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/src/cmd/cfs/cfs.c b/sys/src/cmd/cfs/cfs.c
index 82a508684..c3a11b9b5 100644
--- a/sys/src/cmd/cfs/cfs.c
+++ b/sys/src/cmd/cfs/cfs.c
@@ -438,10 +438,11 @@ ropen(Mfile *mf)
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 @@ rstat(Mfile *mf)
Dir d;
if(statson && ctltest(mf)){
- genstats();
d.qid = ctlqid;
d.mode = 0444;
d.length = statlen; /* would be nice to do better */