aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/venti/srv/fixarenas.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cmd/venti/srv/fixarenas.c')
-rw-r--r--src/cmd/venti/srv/fixarenas.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/cmd/venti/srv/fixarenas.c b/src/cmd/venti/srv/fixarenas.c
index fd9dccc5..ac05ab8c 100644
--- a/src/cmd/venti/srv/fixarenas.c
+++ b/src/cmd/venti/srv/fixarenas.c
@@ -661,7 +661,7 @@ isonearena(void)
return u32(pagein(0, Block)) == ArenaHeadMagic;
}
-static int tabsizes[] = { 16*1024, 64*1024, 512*1024, };
+static int tabsizes[] = { 16*1024, 64*1024, 512*1024, 768*1024, };
/*
* Poke around on the disk to guess what the ArenaPart numbers are.
*/
@@ -807,8 +807,9 @@ guessgeometry(void)
* Fmtarenas used to use 64k tab, now uses 512k tab.
*/
if(ap.arenabase == 0){
+ print("trying standard arena bases...\n");
for(i=0; i<nelem(tabsizes); i++){
- ap.arenabase = ROUNDUP(PartBlank+HeadSize, ap.blocksize);
+ ap.arenabase = ROUNDUP(PartBlank+HeadSize+tabsizes[i], ap.blocksize);
p = pagein(ap.arenabase, Block);
if(u32(p) == ArenaHeadMagic)
break;
@@ -1554,7 +1555,7 @@ guessarena(vlong offset0, int anum, ArenaHead *head, Arena *arena,
bcit = cibuf;
ecit = cibuf+ncibuf;
- smart = 1;
+ smart = 0; /* Somehow the smart code doesn't do corrupt clumps right. */
Again:
nbad = 0;
ci = bci;