ref: 19d7ba2c8d9e53dafef81a4ea21bf3064e9a3ed2
parent: c9f10a4dfa45194595a1fa905267647896224c26
author: cinap_lenrek <cinap_lenrek@centraldogma>
date: Sat Jun 11 10:19:07 EDT 2011
cwfs: store newcache format option in config
--- a/sys/src/cmd/cwfs/config.c
+++ b/sys/src/cmd/cwfs/config.c
@@ -451,6 +451,8 @@
} else if(strcmp(word, "readonly") == 0){if(!readonlyset)
readonly = 1;
+ } else if(strcmp(word, "newcache") == 0){+ conf.newcache = 1;
} else if(strcmp(word, "ipauth") == 0) /* obsolete */
cp = getwrd(word, cp);
else if(astrcmp(word, "ip") == 0) /* obsolete */
@@ -595,6 +597,8 @@
cp = seprint(cp, ep, "noauth\n");
if(readonly)
cp = seprint(cp, ep, "readonly\n");
+ if(conf.newcache)
+ cp = seprint(cp, ep, "newcache\n");
for (fsp = fspar; fsp->name != nil; fsp++)
cp = seprint(cp, ep, "%s %ld\n",
fsp->name, fsp->declared);
--- a/sys/src/cmd/cwfs/cw.c
+++ b/sys/src/cmd/cwfs/cw.c
@@ -84,8 +84,6 @@
[Orele] "rele",
};
-int oldcachefmt = 1;
-
Centry* getcentry(Bucket*, Off);
int cwio(Device*, Off, void*, int);
void cmd_cwcmd(int, char*[]);
@@ -302,10 +300,10 @@
return 0;
found:
- if (oldcachefmt)
- a = a*CEPERBK + (c - b->entry) + caddr;
- else
+ if (conf.newcache)
a += (c - b->entry)*msize + caddr;
+ else
+ a = a*CEPERBK + (c - b->entry) + caddr;
p1 = getbuf(devnone, Cwdump1, 0);
count = 0;
@@ -562,10 +560,10 @@
bn = addr % h->msize;
a1 = h->maddr + bn/BKPERBLK;
- if (oldcachefmt)
- a2 = bn*CEPERBK + h->caddr;
- else
+ if (conf.newcache)
a2 = bn + h->caddr;
+ else
+ a2 = bn*CEPERBK + h->caddr;
max = h->wmax;
putbuf(cb);
@@ -583,10 +581,10 @@
cw->cdev, (Wideoff)a1);
return Cerror;
}
- if (oldcachefmt)
- a2 += c - b->entry;
- else
+ if (conf.newcache)
a2 += (c - b->entry) * h->msize;
+ else
+ a2 += c - b->entry;
state = c->state;
switch(opcode) {--- a/sys/src/cmd/cwfs/main.c
+++ b/sys/src/cmd/cwfs/main.c
@@ -3,8 +3,6 @@
#include "io.h"
#include "9p1.h"
-extern int oldcachefmt;
-
Map *devmap;
Biobuf bin;
@@ -293,6 +291,7 @@
formatinit();
machinit();
conf.confdev = "/dev/sdC0/fscache";
+ conf.newcache = 0;
ARGBEGIN{case 'a': /* announce on this net */
@@ -318,7 +317,7 @@
open("#c/cons", OWRITE);break;
case 'C': /* use new, faster cache layout */
- oldcachefmt = 0;
+ conf.newcache = 1;
break;
case 'c':
conf.configfirst++;
--- a/sys/src/cmd/cwfs/portdat.h
+++ b/sys/src/cmd/cwfs/portdat.h
@@ -436,6 +436,7 @@
uchar nodump; /* no periodic dumps */
uchar dumpreread; /* read and compare in dump copy */
+ uchar newcache;
};
enum {--
⑨