Commit Diff


commit - cb71c0bdc4f605fceafe10ffd2959af693290145
commit + 0798d6b7417c2c0fbdff759fab6a91c1030044f4
blob - 39185ca135882af87bd6fb6abaf7361b0cb0d11b
blob + 1e274ca7943048ef996a91e05861239786de7b9d
--- src/cmd/venti/srv/wrarena.c
+++ src/cmd/venti/srv/wrarena.c
@@ -181,12 +181,11 @@ threadmain(int argc, char *argv[])
 	part = initpart(file, OREAD);
 	if(part == nil)
 		sysfatal("can't open file %s: %r", file);
-	initdcache(8 * MaxDiskBlock);
 
 	// Try as arena partition.
 	arena = nil;
 	ap = initarenapart(part);
-	if(ap == nil)
+	if(ap != nil)
 		goto loaded;
 
 	if(readpart(part, aoffset, buf, sizeof buf) < 0)
@@ -214,12 +213,14 @@ loaded:
 		if(vtconnect(z) < 0)
 			sysfatal("vtconnect: %r");
 	}
-	
+
 	print("%T starting to send data\n");
 	c = chancreate(sizeof(ZClump), 0);
 	for(i=0; i<12; i++)
 		vtproc(vtsendthread, nil);
 
+	initdcache(8 * MaxDiskBlock);
+
 	if(ap != nil) {
 		for(i=0; i<ap->narenas; i++)
 			rdarena(ap->arenas[i], 0);