commit - 6610dac99c6e7370aa0a1d6d0521e301533dc61e
commit + 2432b7b1e57ccc8d204ba99e004d6fb1e1093373
blob - fbaff9cab345e558da07ade1fab15b156e13b302
blob + 662d532391debf2be315a821a9f80698c8b57277
--- src/cmd/venti/srv/verifyarena.c
+++ src/cmd/venti/srv/verifyarena.c
static uchar *data;
static int blocksize;
static int sleepms;
+static vlong offset0;
void
usage(void)
for(nr = 0; nr < n; nr += m){
m = n - nr;
- m = pread(fd, &buf[nr], m, off+nr);
+ m = pread(fd, &buf[nr], m, offset0+off+nr);
if(m <= 0){
if(m == 0)
werrstr("early eof");
char *p, *q, *table, *f[10], line[256];
vlong start, stop;
ArenaPart ap;
-
+ Part *part;
+
needzeroscore();
ventifmtinstall();
blocksize = MaxIoSize;
threadexitsall(nil);
}
- if((fd = open(argv[0], OREAD)) < 0)
- sysfatal("open %s: %r", argv[0]);
+ if((part = initpart(argv[0], OREAD)) == nil)
+ sysfatal("open partition %s: %r", argv[0]);
+ fd = part->fd;
+ offset0 = part->offset;
if(preadblock(data, 8192, PartBlank) < 0)
sysfatal("read arena part header: %r");
fprint(2, "%T %s: bad start,stop %lld,%lld\n", f[0], stop, start);
continue;
}
- if(seek(fd, start, 0) < 0)
+ if(seek(fd, offset0+start, 0) < 0)
fprint(2, "%T %s: seek to start: %r\n", f[0]);
verifyarena(f[0], stop - start);
}