diff options
author | cinap_lenrek <cinap_lenrek@centraldogma> | 2011-06-11 14:19:07 +0000 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@centraldogma> | 2011-06-11 14:19:07 +0000 |
commit | 67bb0a2c7a9ae7b197932e5b3ff3ad48ee39eab5 (patch) | |
tree | 5fc4ec7fe87a36dae66d781c83979470892246df | |
parent | 54e72f3e9cd1e0ae35d14d12940f1b5baa69d031 (diff) | |
download | plan9front-67bb0a2c7a9ae7b197932e5b3ff3ad48ee39eab5.tar.xz |
cwfs: store newcache format option in config
-rw-r--r-- | sys/src/cmd/cwfs/config.c | 4 | ||||
-rw-r--r-- | sys/src/cmd/cwfs/cw.c | 20 | ||||
-rw-r--r-- | sys/src/cmd/cwfs/main.c | 5 | ||||
-rw-r--r-- | sys/src/cmd/cwfs/portdat.h | 1 |
4 files changed, 16 insertions, 14 deletions
diff --git a/sys/src/cmd/cwfs/config.c b/sys/src/cmd/cwfs/config.c index 10a22f6e6..13e4748cb 100644 --- a/sys/src/cmd/cwfs/config.c +++ b/sys/src/cmd/cwfs/config.c @@ -451,6 +451,8 @@ mergeconf(Iobuf *p) } 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 @@ start: 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); diff --git a/sys/src/cmd/cwfs/cw.c b/sys/src/cmd/cwfs/cw.c index c22693d6c..bd7757542 100644 --- a/sys/src/cmd/cwfs/cw.c +++ b/sys/src/cmd/cwfs/cw.c @@ -84,8 +84,6 @@ static char* cwnames[] = [Orele] "rele", }; -int oldcachefmt = 1; - Centry* getcentry(Bucket*, Off); int cwio(Device*, Off, void*, int); void cmd_cwcmd(int, char*[]); @@ -302,10 +300,10 @@ dumpblock(Device *dev) 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 @@ cwio(Device *dev, Off addr, void *buf, int opcode) 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 @@ cwio(Device *dev, Off addr, void *buf, int opcode) 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) { diff --git a/sys/src/cmd/cwfs/main.c b/sys/src/cmd/cwfs/main.c index 784bfcfbe..5a6f8186b 100644 --- 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 @@ main(int argc, char **argv) formatinit(); machinit(); conf.confdev = "/dev/sdC0/fscache"; + conf.newcache = 0; ARGBEGIN{ case 'a': /* announce on this net */ @@ -318,7 +317,7 @@ main(int argc, char **argv) open("#c/cons", OWRITE); break; case 'C': /* use new, faster cache layout */ - oldcachefmt = 0; + conf.newcache = 1; break; case 'c': conf.configfirst++; diff --git a/sys/src/cmd/cwfs/portdat.h b/sys/src/cmd/cwfs/portdat.h index 460e8abed..1904fc86d 100644 --- a/sys/src/cmd/cwfs/portdat.h +++ b/sys/src/cmd/cwfs/portdat.h @@ -436,6 +436,7 @@ struct Conf uchar nodump; /* no periodic dumps */ uchar dumpreread; /* read and compare in dump copy */ + uchar newcache; }; enum { |