X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/blobdiff_plain/a68924a6e07d69bc4b8d6106b3af0ac5a7490905..31cef89cb428866f787983e68246030321893df4:/usr/src/cmd/restor.c diff --git a/usr/src/cmd/restor.c b/usr/src/cmd/restor.c index 9dc1b40fb0..59be2f75a0 100644 --- a/usr/src/cmd/restor.c +++ b/usr/src/cmd/restor.c @@ -1,6 +1,8 @@ +static char *sccsid = "@(#)restor.c 4.1 (Berkeley) 10/1/80"; + #define MAXINO 3000 #define BITS 8 -#define MAXXTR 60 +#define MAXXTR 600 #define NCACHE 3 #ifndef STANDALONE @@ -27,7 +29,7 @@ int fi; ino_t ino, maxi, curino; int mt; -char tapename[] = "/dev/rmt1"; +char tapename[] = "/dev/rmt8"; char *magtape = tapename; #ifdef STANDALONE char mbuf[50]; @@ -380,7 +382,7 @@ ragain: for (i = 0; i < NADDR; i++) taddr[i] = 0; l3tol(taddr, dino.di_addr, 1); - getfile(ino, rstrfile, rstrskip, dino.di_size); + getfile(d, rstrfile, rstrskip, dino.di_size); ip = &tino; ltol3(ip->di_addr, taddr, NADDR); ip1 = &dino; @@ -463,6 +465,7 @@ long size; if (checktype(&addrblock, TS_ADDR) == 0) { spcl = addrblock; curino = 0; + curino = 0; return; } start: @@ -505,8 +508,7 @@ char *b; if ((i = read(mt, tbf, NTREC*BSIZE)) < 0) { printf("Tape read error: inode %u\n", curino); eflag++; - for (i = 0; i < NTREC; i++) - clearbuf(&tbf[i*BSIZE]); + exit(1); } if (i == 0) { bct = NTREC + 1; @@ -780,6 +782,8 @@ clri(ip) struct dinode *ip; { int i, *p; + if (ip->di_mode&IFMT) + sblock.s_tinode++; i = sizeof(struct dinode)/sizeof(int); p = (int *)ip; do @@ -857,16 +861,18 @@ daddr_t bn; union { char data[BSIZE]; struct fblk frees; - } fbuf; + } fbun; +#define fbuf fbun.frees if(sblock.s_nfree >= NICFREE) { fbuf.df_nfree = sblock.s_nfree; for(i=0;idi_mode&IFMT) + sblock.s_tinode--; bno = ((ino - 1)/INOPB) + 2; dread(bno, buf, BSIZE); copy((char *) b, &buf[((inum-1)%INOPB)*sizeof(struct dinode)], sizeof(struct dinode));