diff options
| author | David du Colombier <0intro@gmail.com> | 2013-09-23 23:16:25 +0200 |
|---|---|---|
| committer | David du Colombier <0intro@gmail.com> | 2013-09-23 23:16:25 +0200 |
| commit | 4b5766580559d101dd1c29cc575b3ffa9f51c2d7 (patch) | |
| tree | f35364a39e255b1336482ee30217d68279ba8699 /src/cmd/fossil/9fsys.c | |
| parent | 6f4d00ee45693290fae042b27536b54f77b96acd (diff) | |
| download | plan9port-4b5766580559d101dd1c29cc575b3ffa9f51c2d7.tar.gz plan9port-4b5766580559d101dd1c29cc575b3ffa9f51c2d7.zip | |
fossil: move from liboventi to libthread and libventi
R=rsc
https://codereview.appspot.com/13504049
Diffstat (limited to 'src/cmd/fossil/9fsys.c')
| -rw-r--r-- | src/cmd/fossil/9fsys.c | 333 |
1 files changed, 164 insertions, 169 deletions
diff --git a/src/cmd/fossil/9fsys.c b/src/cmd/fossil/9fsys.c index 4e139f70..ac724251 100644 --- a/src/cmd/fossil/9fsys.c +++ b/src/cmd/fossil/9fsys.c @@ -5,14 +5,14 @@ #include "9.h" struct Fsys { - VtLock* lock; + QLock lock; char* name; /* copy here & Fs to ease error reporting */ char* dev; char* venti; Fs* fs; - VtSession* session; + VtConn* session; int ref; int noauth; @@ -27,7 +27,7 @@ int mempcnt; /* from fossil.c */ int fsGetBlockSize(Fs *fs); static struct { - VtLock* lock; + RWLock lock; Fsys* head; Fsys* tail; @@ -49,10 +49,10 @@ static char * ventihost(char *host) { if(host != nil) - return vtStrDup(host); + return vtstrdup(host); host = getenv("venti"); if(host == nil) - host = vtStrDup("$venti"); + host = vtstrdup("$venti"); return host; } @@ -67,18 +67,18 @@ prventihost(char *host) free(vh); } -static VtSession * -myDial(char *host, int canfail) +static VtConn * +myDial(char *host) { prventihost(host); - return vtDial(host, canfail); + return vtdial(host); } static int -myRedial(VtSession *z, char *host) +myRedial(VtConn *z, char *host) { prventihost(host); - return vtRedial(z, host); + return vtredial(z, host); } static Fsys* @@ -89,16 +89,16 @@ _fsysGet(char* name) if(name == nil || name[0] == '\0') name = "main"; - vtRLock(sbox.lock); + rlock(&sbox.lock); for(fsys = sbox.head; fsys != nil; fsys = fsys->next){ if(strcmp(name, fsys->name) == 0){ fsys->ref++; break; } } - vtRUnlock(sbox.lock); + runlock(&sbox.lock); if(fsys == nil) - vtSetError(EFsysNotFound, name); + werrstr(EFsysNotFound, name); return fsys; } @@ -116,14 +116,14 @@ cmdPrintConfig(int argc, char* argv[]) if(argc) return cliError(usage); - vtRLock(sbox.lock); + rlock(&sbox.lock); for(fsys = sbox.head; fsys != nil; fsys = fsys->next){ consPrint("\tfsys %s config %s\n", fsys->name, fsys->dev); if(fsys->venti && fsys->venti[0]) consPrint("\tfsys %s venti %q\n", fsys->name, fsys->venti); } - vtRUnlock(sbox.lock); + runlock(&sbox.lock); return 1; } @@ -135,14 +135,14 @@ fsysGet(char* name) if((fsys = _fsysGet(name)) == nil) return nil; - vtLock(fsys->lock); + qlock(&fsys->lock); if(fsys->fs == nil){ - vtSetError(EFsysNotOpen, fsys->name); - vtUnlock(fsys->lock); + werrstr(EFsysNotOpen, fsys->name); + qunlock(&fsys->lock); fsysPut(fsys); return nil; } - vtUnlock(fsys->lock); + qunlock(&fsys->lock); return fsys; } @@ -156,9 +156,9 @@ fsysGetName(Fsys* fsys) Fsys* fsysIncRef(Fsys* fsys) { - vtLock(sbox.lock); + wlock(&sbox.lock); fsys->ref++; - vtUnlock(sbox.lock); + wunlock(&sbox.lock); return fsys; } @@ -166,10 +166,10 @@ fsysIncRef(Fsys* fsys) void fsysPut(Fsys* fsys) { - vtLock(sbox.lock); + wlock(&sbox.lock); assert(fsys->ref > 0); fsys->ref--; - vtUnlock(sbox.lock); + wunlock(&sbox.lock); } Fs* @@ -183,13 +183,13 @@ fsysGetFs(Fsys* fsys) void fsysFsRlock(Fsys* fsys) { - vtRLock(fsys->fs->elk); + rlock(&fsys->fs->elk); } void fsysFsRUnlock(Fsys* fsys) { - vtRUnlock(fsys->fs->elk); + runlock(&fsys->fs->elk); } int @@ -285,19 +285,18 @@ fsysAlloc(char* name, char* dev) { Fsys *fsys; - vtLock(sbox.lock); + wlock(&sbox.lock); for(fsys = sbox.head; fsys != nil; fsys = fsys->next){ if(strcmp(fsys->name, name) != 0) continue; - vtSetError(EFsysExists, name); - vtUnlock(sbox.lock); + werrstr(EFsysExists, name); + wunlock(&sbox.lock); return nil; } - fsys = vtMemAllocZ(sizeof(Fsys)); - fsys->lock = vtLockAlloc(); - fsys->name = vtStrDup(name); - fsys->dev = vtStrDup(dev); + fsys = vtmallocz(sizeof(Fsys)); + fsys->name = vtstrdup(name); + fsys->dev = vtstrdup(dev); fsys->ref = 1; @@ -306,7 +305,7 @@ fsysAlloc(char* name, char* dev) else sbox.head = fsys; sbox.tail = fsys; - vtUnlock(sbox.lock); + wunlock(&sbox.lock); return fsys; } @@ -334,7 +333,7 @@ fsysClose(Fsys* fsys, int argc, char* argv[]) * More thought and care needed here. fsClose(fsys->fs); fsys->fs = nil; - vtClose(fsys->session); + vtfreeconn(fsys->session); fsys->session = nil; if(sbox.curfsys != nil && strcmp(fsys->name, sbox.curfsys) == 0){ @@ -566,19 +565,19 @@ fsysRemove(Fsys* fsys, int argc, char* argv[]) if(argc == 0) return cliError(usage); - vtRLock(fsys->fs->elk); + rlock(&fsys->fs->elk); while(argc > 0){ if((file = fileOpen(fsys->fs, argv[0])) == nil) - consPrint("%s: %R\n", argv[0]); + consPrint("%s: %r\n", argv[0]); else{ if(!fileRemove(file, uidadm)) - consPrint("%s: %R\n", argv[0]); + consPrint("%s: %r\n", argv[0]); fileDecRef(file); } argc--; argv++; } - vtRUnlock(fsys->fs->elk); + runlock(&fsys->fs->elk); return 1; } @@ -595,14 +594,14 @@ fsysClri(Fsys* fsys, int argc, char* argv[]) if(argc == 0) return cliError(usage); - vtRLock(fsys->fs->elk); + rlock(&fsys->fs->elk); while(argc > 0){ if(!fileClriPath(fsys->fs, argv[0], uidadm)) - consPrint("clri %s: %R\n", argv[0]); + consPrint("clri %s: %r\n", argv[0]); argc--; argv++; } - vtRUnlock(fsys->fs->elk); + runlock(&fsys->fs->elk); return 1; } @@ -628,7 +627,7 @@ fsysLabel(Fsys* fsys, int argc, char* argv[]) return cliError(usage); r = 0; - vtRLock(fsys->fs->elk); + rlock(&fsys->fs->elk); fs = fsys->fs; addr = strtoul(argv[0], 0, 0); @@ -663,11 +662,11 @@ fsysLabel(Fsys* fsys, int argc, char* argv[]) if(blockWrite(bb, Waitlock)){ while(bb->iostate != BioClean){ assert(bb->iostate == BioWriting); - vtSleep(bb->ioready); + rsleep(&bb->ioready); } break; } - consPrint("blockWrite: %R\n"); + consPrint("blockWrite: %r\n"); if(n++ >= 5){ consPrint("giving up\n"); break; @@ -680,7 +679,7 @@ fsysLabel(Fsys* fsys, int argc, char* argv[]) Out1: blockPut(b); Out0: - vtRUnlock(fs->elk); + runlock(&fs->elk); return r; } @@ -710,7 +709,7 @@ fsysBlock(Fsys* fsys, int argc, char* argv[]) addr = strtoul(argv[0], 0, 0); offset = strtoul(argv[1], 0, 0); if(offset < 0 || offset >= fs->blockSize){ - vtSetError("bad offset"); + werrstr("bad offset"); return 0; } if(argc > 2) @@ -720,12 +719,12 @@ fsysBlock(Fsys* fsys, int argc, char* argv[]) if(offset+count > fs->blockSize) count = fs->blockSize - count; - vtRLock(fs->elk); + rlock(&fs->elk); b = cacheLocal(fs->cache, PartData, addr, argc==4 ? OReadWrite : OReadOnly); if(b == nil){ - vtSetError("cacheLocal %#ux: %R", addr); - vtRUnlock(fs->elk); + werrstr("cacheLocal %#ux: %r", addr); + runlock(&fs->elk); return 0; } @@ -735,10 +734,10 @@ fsysBlock(Fsys* fsys, int argc, char* argv[]) if(argc == 4){ s = argv[3]; if(strlen(s) != 2*count){ - vtSetError("bad data count"); + werrstr("bad data count"); goto Out; } - buf = vtMemAllocZ(count); + buf = vtmallocz(count); for(i = 0; i < count*2; i++){ if(s[i] >= '0' && s[i] <= '9') c = s[i] - '0'; @@ -747,8 +746,8 @@ fsysBlock(Fsys* fsys, int argc, char* argv[]) else if(s[i] >= 'A' && s[i] <= 'F') c = s[i] - 'A' + 10; else{ - vtSetError("bad hex"); - vtMemFree(buf); + werrstr("bad hex"); + vtfree(buf); goto Out; } if((i & 1) == 0) @@ -763,7 +762,7 @@ fsysBlock(Fsys* fsys, int argc, char* argv[]) Out: blockPut(b); - vtRUnlock(fs->elk); + runlock(&fs->elk); return 1; } @@ -789,18 +788,18 @@ fsysBfree(Fsys* fsys, int argc, char* argv[]) return cliError(usage); fs = fsys->fs; - vtRLock(fs->elk); + rlock(&fs->elk); while(argc > 0){ addr = strtoul(argv[0], &p, 0); if(*p != '\0'){ consPrint("bad address - '%ud'\n", addr); /* syntax error; let's stop */ - vtRUnlock(fs->elk); + runlock(&fs->elk); return 0; } b = cacheLocal(fs->cache, PartData, addr, OReadOnly); if(b == nil){ - consPrint("loading %#ux: %R\n", addr); + consPrint("loading %#ux: %r\n", addr); continue; } l = b->l; @@ -815,13 +814,13 @@ fsysBfree(Fsys* fsys, int argc, char* argv[]) l.epoch = 0; l.epochClose = 0; if(!blockSetLabel(b, &l, 0)) - consPrint("freeing %#ux: %R\n", addr); + consPrint("freeing %#ux: %r\n", addr); } blockPut(b); argc--; argv++; } - vtRUnlock(fs->elk); + runlock(&fs->elk); return 1; } @@ -870,24 +869,24 @@ fsysClrep(Fsys* fsys, int argc, char* argv[], int ch) return cliError(usage, ch); fs = fsys->fs; - vtRLock(fsys->fs->elk); + rlock(&fsys->fs->elk); addr = strtoul(argv[0], 0, 0); b = cacheLocal(fs->cache, PartData, addr, argc==4 ? OReadWrite : OReadOnly); if(b == nil){ - vtSetError("cacheLocal %#ux: %R", addr); + werrstr("cacheLocal %#ux: %r", addr); Err: - vtRUnlock(fsys->fs->elk); + runlock(&fsys->fs->elk); return 0; } switch(ch){ default: - vtSetError("clrep"); + werrstr("clrep"); goto Err; case 'e': if(b->l.type != BtDir){ - vtSetError("wrong block type"); + werrstr("wrong block type"); goto Err; } sz = VtEntrySize; @@ -896,11 +895,11 @@ fsysClrep(Fsys* fsys, int argc, char* argv[], int ch) break; case 'p': if(b->l.type == BtDir || b->l.type == BtData){ - vtSetError("wrong block type"); + werrstr("wrong block type"); goto Err; } sz = VtScoreSize; - memmove(zero, vtZeroScore, VtScoreSize); + memmove(zero, vtzeroscore, VtScoreSize); break; } max = fs->blockSize/sz; @@ -916,7 +915,7 @@ fsysClrep(Fsys* fsys, int argc, char* argv[], int ch) } blockDirty(b); blockPut(b); - vtRUnlock(fsys->fs->elk); + runlock(&fsys->fs->elk); return 1; } @@ -951,17 +950,17 @@ fsysEsearch1(File* f, char* s, u32int elo) for(;;){ r = deeRead(dee, &de); if(r < 0){ - consPrint("\tdeeRead %s/%s: %R\n", s, de.elem); + consPrint("\tdeeRead %s/%s: %r\n", s, de.elem); break; } if(r == 0) break; if(de.mode & ModeSnapshot){ if((ff = fileWalk(f, de.elem)) == nil) - consPrint("\tcannot walk %s/%s: %R\n", s, de.elem); + consPrint("\tcannot walk %s/%s: %r\n", s, de.elem); else{ if(!fileGetSources(ff, &e, &ee)) - consPrint("\tcannot get sources for %s/%s: %R\n", s, de.elem); + consPrint("\tcannot get sources for %s/%s: %r\n", s, de.elem); else if(e.snap != 0 && e.snap < elo){ consPrint("\t%ud\tclri %s/%s\n", e.snap, s, de.elem); n++; @@ -971,11 +970,11 @@ fsysEsearch1(File* f, char* s, u32int elo) } else if(de.mode & ModeDir){ if((ff = fileWalk(f, de.elem)) == nil) - consPrint("\tcannot walk %s/%s: %R\n", s, de.elem); + consPrint("\tcannot walk %s/%s: %r\n", s, de.elem); else{ t = smprint("%s/%s", s, de.elem); n += fsysEsearch1(ff, t, elo); - vtMemFree(t); + vtfree(t); fileDecRef(ff); } } @@ -999,7 +998,7 @@ fsysEsearch(Fs* fs, char* path, u32int elo) if(f == nil) return 0; if(!fileGetDir(f, &de)){ - consPrint("\tfileGetDir %s failed: %R\n", path); + consPrint("\tfileGetDir %s failed: %r\n", path); fileDecRef(f); return 0; } @@ -1046,16 +1045,16 @@ fsysEpoch(Fsys* fsys, int argc, char* argv[]) fs = fsys->fs; - vtRLock(fs->elk); + rlock(&fs->elk); consPrint("\tlow %ud hi %ud\n", fs->elo, fs->ehi); if(low == ~(u32int)0){ - vtRUnlock(fs->elk); + runlock(&fs->elk); return 1; } n = fsysEsearch(fsys->fs, "/archive", low); n += fsysEsearch(fsys->fs, "/snapshot", low); consPrint("\t%d snapshot%s found with epoch < %ud\n", n, n==1 ? "" : "s", low); - vtRUnlock(fs->elk); + runlock(&fs->elk); /* * There's a small race here -- a new snapshot with epoch < low might @@ -1070,7 +1069,7 @@ fsysEpoch(Fsys* fsys, int argc, char* argv[]) } old = fs->elo; if(!fsEpochLow(fs, low)) - consPrint("\tfsEpochLow: %R\n"); + consPrint("\tfsEpochLow: %r\n"); else{ consPrint("\told: epoch%s %ud\n", force ? " -y" : "", old); consPrint("\tnew: epoch%s %ud\n", force ? " -y" : "", fs->elo); @@ -1108,8 +1107,8 @@ fsysCreate(Fsys* fsys, int argc, char* argv[]) if(strcmp(argv[1], uidnoworld) == 0) return cliError("permission denied"); - vtRLock(fsys->fs->elk); - path = vtStrDup(argv[0]); + rlock(&fsys->fs->elk); + path = vtstrdup(argv[0]); if((p = strrchr(path, '/')) != nil){ *p++ = '\0'; elem = p; @@ -1129,20 +1128,20 @@ fsysCreate(Fsys* fsys, int argc, char* argv[]) file = fileCreate(parent, elem, mode, argv[1]); fileDecRef(parent); if(file == nil){ - vtSetError("create %s/%s: %R", p, elem); + werrstr("create %s/%s: %r", p, elem); goto out; } if(!fileGetDir(file, &de)){ - vtSetError("stat failed after create: %R"); + werrstr("stat failed after create: %r"); goto out1; } if(strcmp(de.gid, argv[2]) != 0){ - vtMemFree(de.gid); - de.gid = vtStrDup(argv[2]); + vtfree(de.gid); + de.gid = vtstrdup(argv[2]); if(!fileSetDir(file, &de, argv[1])){ - vtSetError("wstat failed after create: %R"); + werrstr("wstat failed after create: %r"); goto out2; } } @@ -1153,8 +1152,8 @@ out2: out1: fileDecRef(file); out: - vtMemFree(path); - vtRUnlock(fsys->fs->elk); + vtfree(path); + runlock(&fsys->fs->elk); return r; } @@ -1186,14 +1185,14 @@ fsysStat(Fsys* fsys, int argc, char* argv[]) if(argc == 0) return cliError(usage); - vtRLock(fsys->fs->elk); + rlock(&fsys->fs->elk); for(i=0; i<argc; i++){ if((f = fileOpen(fsys->fs, argv[i])) == nil){ - consPrint("%s: %R\n", argv[i]); + consPrint("%s: %r\n", argv[i]); continue; } if(!fileGetDir(f, &de)){ - consPrint("%s: %R\n", argv[i]); + consPrint("%s: %r\n", argv[i]); fileDecRef(f); continue; } @@ -1201,7 +1200,7 @@ fsysStat(Fsys* fsys, int argc, char* argv[]) deCleanup(&de); fileDecRef(f); } - vtRUnlock(fsys->fs->elk); + runlock(&fsys->fs->elk); return 1; } @@ -1222,79 +1221,79 @@ fsysWstat(Fsys *fsys, int argc, char* argv[]) if(argc != 6) return cliError(usage); - vtRLock(fsys->fs->elk); + rlock(&fsys->fs->elk); if((f = fileOpen(fsys->fs, argv[0])) == nil){ - vtSetError("console wstat - walk - %R"); - vtRUnlock(fsys->fs->elk); + werrstr("console wstat - walk - %r"); + runlock(&fsys->fs->elk); return 0; } if(!fileGetDir(f, &de)){ - vtSetError("console wstat - stat - %R"); + werrstr("console wstat - stat - %r"); fileDecRef(f); - vtRUnlock(fsys->fs->elk); + runlock(&fsys->fs->elk); return 0; } fsysPrintStat("\told: w", argv[0], &de); if(strcmp(argv[1], "-") != 0){ if(!validFileName(argv[1])){ - vtSetError("console wstat - bad elem"); + werrstr("console wstat - bad elem"); goto error; } - vtMemFree(de.elem); - de.elem = vtStrDup(argv[1]); + vtfree(de.elem); + de.elem = vtstrdup(argv[1]); } if(strcmp(argv[2], "-") != 0){ if(!validUserName(argv[2])){ - vtSetError("console wstat - bad uid"); + werrstr("console wstat - bad uid"); goto error; } - vtMemFree(de.uid); - de.uid = vtStrDup(argv[2]); + vtfree(de.uid); + de.uid = vtstrdup(argv[2]); } if(strcmp(argv[3], "-") != 0){ if(!validUserName(argv[3])){ - vtSetError("console wstat - bad gid"); + werrstr("console wstat - bad gid"); goto error; } - vtMemFree(de.gid); - de.gid = vtStrDup(argv[3]); + vtfree(de.gid); + de.gid = vtstrdup(argv[3]); } if(strcmp(argv[4], "-") != 0){ if(!fsysParseMode(argv[4], &de.mode)){ - vtSetError("console wstat - bad mode"); + werrstr("console wstat - bad mode"); goto error; } } if(strcmp(argv[5], "-") != 0){ de.size = strtoull(argv[5], &p, 0); if(argv[5][0] == '\0' || *p != '\0' || (vlong)de.size < 0){ - vtSetError("console wstat - bad length"); + werrstr("console wstat - bad length"); goto error; } } if(!fileSetDir(f, &de, uidadm)){ - vtSetError("console wstat - %R"); + werrstr("console wstat - %r"); goto error; } deCleanup(&de); if(!fileGetDir(f, &de)){ - vtSetError("console wstat - stat2 - %R"); + werrstr("console wstat - stat2 - %r"); goto error; } fsysPrintStat("\tnew: w", argv[0], &de); deCleanup(&de); fileDecRef(f); - vtRUnlock(fsys->fs->elk); + runlock(&fsys->fs->elk); return 1; error: deCleanup(&de); /* okay to do this twice */ fileDecRef(f); - vtRUnlock(fsys->fs->elk); + runlock(&fsys->fs->elk); return 0; } @@ -1330,7 +1329,7 @@ fsckClose(Fsck *fsck, Block *b, u32int epoch) l.state = BsFree; if(!blockSetLabel(b, &l, 0)) - consPrint("%#ux setlabel: %R\n", b->addr); + consPrint("%#ux setlabel: %r\n", b->addr); } static void @@ -1358,7 +1357,7 @@ fsckClrp(Fsck *fsck, Block *b, int offset) consPrint("bad clre\n"); return; } - memmove(b->data+offset*VtScoreSize, vtZeroScore, VtScoreSize); + memmove(b->data+offset*VtScoreSize, vtzeroscore, VtScoreSize); blockDirty(b); } @@ -1459,13 +1458,13 @@ fsysVenti(char* name, int argc, char* argv[]) if((fsys = _fsysGet(name)) == nil) return 0; - vtLock(fsys->lock); + qlock(&fsys->lock); if(host == nil) host = fsys->venti; else{ - vtMemFree(fsys->venti); + vtfree(fsys->venti); if(host[0]) - fsys->venti = vtStrDup(host); + fsys->venti = vtstrdup(host); else{ host = nil; fsys->venti = nil; @@ -1475,26 +1474,26 @@ fsysVenti(char* name, int argc, char* argv[]) /* already open: do a redial */ if(fsys->fs != nil){ if(fsys->session == nil){ - vtSetError("file system was opened with -V"); + werrstr("file system was opened with -V"); r = 0; goto out; } r = 1; - if(!myRedial(fsys->session, host) - || !vtConnect(fsys->session, 0)) + if(myRedial(fsys->session, host) < 0 + || vtconnect(fsys->session) < 0) r = 0; goto out; } /* not yet open: try to dial */ if(fsys->session) - vtClose(fsys->session); + vtfreeconn(fsys->session); r = 1; - if((fsys->session = myDial(host, 0)) == nil - || !vtConnect(fsys->session, 0)) + if((fsys->session = myDial(host)) == nil + || vtconnect(fsys->session) < 0) r = 0; out: - vtUnlock(fsys->lock); + qunlock(&fsys->lock); fsysPut(fsys); return r; } @@ -1593,17 +1592,17 @@ fsysOpen(char* name, int argc, char* argv[]) ncache = 100; } - vtLock(fsys->lock); + qlock(&fsys->lock); if(fsys->fs != nil){ - vtSetError(EFsysBusy, fsys->name); - vtUnlock(fsys->lock); + werrstr(EFsysBusy, fsys->name); + qunlock(&fsys->lock); fsysPut(fsys); return 0; } if(noventi){ if(fsys->session){ - vtClose(fsys->session); + vtfreeconn(fsys->session); fsys->session = nil; } } @@ -1612,13 +1611,14 @@ fsysOpen(char* name, int argc, char* argv[]) host = fsys->venti; else host = nil; - fsys->session = myDial(host, 1); - if(!vtConnect(fsys->session, nil) && !noventi) - fprint(2, "warning: connecting to venti: %R\n"); + + if((fsys->session = myDial(host)) == nil + || vtconnect(fsys->session) < 0 && !noventi) + fprint(2, "warning: connecting to venti: %r\n"); } if((fsys->fs = fsOpen(fsys->dev, fsys->session, ncache, rflag)) == nil){ - vtSetError("fsOpen: %R"); - vtUnlock(fsys->lock); + werrstr("fsOpen: %r"); + qunlock(&fsys->lock); fsysPut(fsys); return 0; } @@ -1627,7 +1627,7 @@ fsysOpen(char* name, int argc, char* argv[]) fsys->noperm = noperm; fsys->wstatallow = wstatallow; fsys->fs->noatimeupd = noatimeupd; - vtUnlock(fsys->lock); + qunlock(&fsys->lock); fsysPut(fsys); if(strcmp(name, "main") == 0) @@ -1649,7 +1649,7 @@ fsysUnconfig(char* name, int argc, char* argv[]) if(argc) return cliError(usage); - vtLock(sbox.lock); + wlock(&sbox.lock); fp = &sbox.head; for(fsys = *fp; fsys != nil; fsys = fsys->next){ if(strcmp(fsys->name, name) == 0) @@ -1657,29 +1657,27 @@ fsysUnconfig(char* name, int argc, char* argv[]) fp = &fsys->next; } if(fsys == nil){ - vtSetError(EFsysNotFound, name); - vtUnlock(sbox.lock); + werrstr(EFsysNotFound, name); + wunlock(&sbox.lock); return 0; } if(fsys->ref != 0 || fsys->fs != nil){ - vtSetError(EFsysBusy, fsys->name); - vtUnlock(sbox.lock); + werrstr(EFsysBusy, fsys->name); + wunlock(&sbox.lock); return 0; } *fp = fsys->next; - vtUnlock(sbox.lock); + wunlock(&sbox.lock); - if(fsys->session != nil){ - vtClose(fsys->session); - vtFree(fsys->session); - } + if(fsys->session != nil) + vtfreeconn(fsys->session); if(fsys->venti != nil) - vtMemFree(fsys->venti); + vtfree(fsys->venti); if(fsys->dev != nil) - vtMemFree(fsys->dev); + vtfree(fsys->dev); if(fsys->name != nil) - vtMemFree(fsys->name); - vtMemFree(fsys); + vtfree(fsys->name); + vtfree(fsys); return 1; } @@ -1704,16 +1702,16 @@ fsysConfig(char* name, int argc, char* argv[]) part = argv[0]; if((fsys = _fsysGet(part)) != nil){ - vtLock(fsys->lock); + qlock(&fsys->lock); if(fsys->fs != nil){ - vtSetError(EFsysBusy, fsys->name); - vtUnlock(fsys->lock); + werrstr(EFsysBusy, fsys->name); + qunlock(&fsys->lock); fsysPut(fsys); return 0; } - vtMemFree(fsys->dev); - fsys->dev = vtStrDup(part); - vtUnlock(fsys->lock); + vtfree(fsys->dev); + fsys->dev = vtstrdup(part); + qunlock(&fsys->lock); } else if((fsys = fsysAlloc(name, part)) == nil) return 0; @@ -1762,22 +1760,22 @@ fsysXXX1(Fsys *fsys, int i, int argc, char* argv[]) { int r; - vtLock(fsys->lock); + qlock(&fsys->lock); if(fsys->fs == nil){ - vtUnlock(fsys->lock); - vtSetError(EFsysNotOpen, fsys->name); + qunlock(&fsys->lock); + werrstr(EFsysNotOpen, fsys->name); return 0; } if(fsys->fs->halted && fsyscmd[i].f != fsysUnhalt && fsyscmd[i].f != fsysCheck){ - vtSetError("file system %s is halted", fsys->name); - vtUnlock(fsys->lock); + werrstr("file system %s is halted", fsys->name); + qunlock(&fsys->lock); return 0; } r = (*fsyscmd[i].f)(fsys, argc, argv); - vtUnlock(fsys->lock); + qunlock(&fsys->lock); return r; } @@ -1793,14 +1791,14 @@ fsysXXX(char* name, int argc, char* argv[]) } if(fsyscmd[i].cmd == nil){ - vtSetError("unknown command - '%s'", argv[0]); + werrstr("unknown command - '%s'", argv[0]); return 0; } /* some commands want the name... */ if(fsyscmd[i].f1 != nil){ if(strcmp(name, FsysAll) == 0){ - vtSetError("cannot use fsys %#q with %#q command", FsysAll, argv[0]); + werrstr("cannot use fsys %#q with %#q command", FsysAll, argv[0]); return 0; } return (*fsyscmd[i].f1)(name, argc, argv); @@ -1809,13 +1807,13 @@ fsysXXX(char* name, int argc, char* argv[]) /* ... but most commands want the Fsys */ if(strcmp(name, FsysAll) == 0){ r = 1; - vtRLock(sbox.lock); + rlock(&sbox.lock); for(fsys = sbox.head; fsys != nil; fsys = fsys->next){ fsys->ref++; r = fsysXXX1(fsys, i, argc, argv) && r; fsys->ref--; } - vtRUnlock(sbox.lock); + runlock(&sbox.lock); }else{ if((fsys = _fsysGet(name)) == nil) return 0; @@ -1831,7 +1829,7 @@ cmdFsysXXX(int argc, char* argv[]) char *name; if((name = sbox.curfsys) == nil){ - vtSetError(EFsysNoCurrent, argv[0]); + werrstr(EFsysNoCurrent, argv[0]); return 0; } @@ -1850,18 +1848,18 @@ cmdFsys(int argc, char* argv[]) }ARGEND if(argc == 0){ - vtRLock(sbox.lock); + rlock(&sbox.lock); currfsysname = sbox.head->name; for(fsys = sbox.head; fsys != nil; fsys = fsys->next) consPrint("\t%s\n", fsys->name); - vtRUnlock(sbox.lock); + runlock(&sbox.lock); return 1; } if(argc == 1){ fsys = nil; if(strcmp(argv[0], FsysAll) != 0 && (fsys = fsysGet(argv[0])) == nil) return 0; - sbox.curfsys = vtStrDup(argv[0]); + sbox.curfsys = vtstrdup(argv[0]); consPrompt(sbox.curfsys); if(fsys) fsysPut(fsys); @@ -1878,11 +1876,8 @@ fsysInit(void) fmtinstall('H', encodefmt); fmtinstall('V', scoreFmt); - fmtinstall('R', vtErrFmt); fmtinstall('L', labelFmt); - sbox.lock = vtLockAlloc(); - cliAddCmd("fsys", cmdFsys); for(i = 0; fsyscmd[i].cmd != nil; i++){ if(fsyscmd[i].f != nil) |
