|
|
1.1 root 1: #include "fs.h"
2:
3: char xbuf[4096]; /* also used by prname */
4: char *
5: errnm(n)
6: {
7: switch(n) {
8: default:
9: sprintf(xbuf, "?%d?", n);
10: return(xbuf);
11: case Elinksize: return("Elinksize");
12: case Ebadaddr: return("Ebadaddr");
13: case Efirst: return("Efirst");
14: case Ebadread: return("Ebadread");
15: case Efirstio: return("Efirstio");
16: case Edirio: return("Edirio");
17: case Enotdot: return("Enotdot");
18: case Enotdotdot: return("Enotdotdot");
19: case Edotino: return("Edotino");
20: case Ebadino: return("Ebadino");
21: case Ebadname: return("Ebadname");
22: case Enullable: return("Enullable");
23: case Elinkcnt: return("Elinkcnt");
24: case Emulti: return("Emulti");
25: case Ebadparent: return("Ebadparent");
26: case Esuperino: return("Esuperino");
27: case Esuperfree: return("Esuperfree");
28: case Einvalid: return("Einvalid");
29: case Efreelist: return("Efreelist");
30: case Edup: return("Edup");
31: case Eshort: return("Eshort");
32: case Ehole: return("Ehole");
33: case Etriple: return("Etriple");
34: case Eshortdir: return("Eshortdir");
35: case Eattach: return("Eattach");
36: case Efakeroot: return("Efakeroot");
37: }
38: }
39:
40: adderr(n, a, b)
41: {
42: if(!erlen) {
43: erlen = 100;
44: erlist = (er *) malloc(erlen * sizeof(er));
45: if(!erlist)
46: fatal("can't alloc %d erlist\n", erlen);
47: }
48: if(erptr >= erlen) {
49: erlen *= 3;
50: erlist = (er *) realloc((char *)erlist, erlen * sizeof(er));
51: if(!erlist)
52: fatal("can't realloc %d erlist\n");
53: }
54: errcnts[n]++;
55: erlist[erptr].type = n;
56: erlist[erptr].a = a;
57: erlist[erptr].b = b;
58: erlist[erptr].done = 0;
59: erptr++;
60: }
61:
62: supererr(n, a, b)
63: {
64: adderr(n, a, b);
65: }
66:
67: inoerr(n, ino, i)
68: {
69: adderr(n, ino, i);
70: }
71:
72: dupblock(bp, a, b)
73: bm *bp;
74: { static cnt;
75: if(++cnt <= 20)
76: pmesg("dup block %d %s %s\n", bp-bmap, btype(a), btype(b));
77: else if(cnt == 20)
78: pmesg("more dups\n");
79: adderr(Edup, bp-bmap, bp->ino);
80: }
81:
82: direrror(n, ino, i)
83: {
84: adderr(n, ino, i);
85: }
86:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.