embarassing off-by-one error that causes a clean venti shutdown to make the very last written block unindexed. ironically, a non-clean shutdown works just fine. Reference: /n/sources/patch/applied/venti-oops Date: Tue Apr 1 22:22:31 CES 2008 Signed-off-by: rsc@swtch.com --- /sys/src/cmd/venti/srv/icache.c Tue Apr 1 22:21:57 2008 +++ /sys/src/cmd/venti/srv/icache.c Tue Apr 1 22:21:56 2008 @@ -498,7 +498,7 @@ trace(TraceProc, "icachedirty enter"); qlock(&icache.lock); for(ie = icache.dirty.next; ie != &icache.dirty; ie=ie->next){ - if(ie->state == IEDirty && ie->ia.addr < limit){ + if(ie->state == IEDirty && ie->ia.addr <= limit){ h = hashbits(ie->score, 32); if(lo <= h && h <= hi){ ie->nextdirty = dirty;