/sys/src/cmd/fossil/cache.c % cat >/sys/lib/dist/changes/1176501605.6.txt << EOF We know that the I/O error is in reading, so we should specify so. EOF [geoff] --rw-rw-r-- M 121 rsc sys 43930 Apr 13 17:36 sys/src/cmd/fossil/cache.c /n/sourcesdump/2007/0413/plan9/sys/src/cmd/fossil/cache.c:462,468 - /n/sources/plan9/sys/src/cmd/fossil/cache.c:462,468 return nil; case BioReadError: blockPut(b); - vtSetError("i/o error block 0x%.8ux", addr); + vtSetError("error reading block 0x%.8ux", addr); return nil; } } /n/sourcesdump/2007/0413/plan9/sys/src/cmd/fossil/cache.c:577,583 - /n/sources/plan9/sys/src/cmd/fossil/cache.c:577,583 case BioReadError: blockSetIOState(b, BioEmpty); blockPut(b); - vtSetError("i/o error block 0x%.8ux", addr); + vtSetError("error reading block 0x%.8ux", addr); return nil; } } /n/sourcesdump/2007/0413/plan9/sys/src/cmd/fossil/cache.c:681,687 - /n/sources/plan9/sys/src/cmd/fossil/cache.c:681,689 if(n < 0 || !vtSha1Check(score, b->data, n)){ blockSetIOState(b, BioVentiError); blockPut(b); - vtSetError("venti i/o error block %V: %r", score); + vtSetError( + "venti error reading block %V or wrong score: %r", + score); return nil; } vtZeroExtend(vtType[type], b->data, n, c->size); /n/sourcesdump/2007/0413/plan9/sys/src/cmd/fossil/cache.c:691,701 - /n/sources/plan9/sys/src/cmd/fossil/cache.c:693,703 return b; case BioVentiError: blockPut(b); - vtSetError("venti i/o error block %V", score); + vtSetError("venti i/o error or wrong score, block %V", score); return nil; case BioReadError: blockPut(b); - vtSetError("i/o error block %V", b->score); + vtSetError("error reading block %V", b->score); return nil; } /* NOT REACHED */