static char *sccsid
= "@(#)dumptraverse.c 1.1 (Berkeley) %G%";
struct dinode itab
[INOPB
* NI
];
bread((daddr_t
)1, (char *)&sblock
, sizeof(sblock
));
mino
= (sblock
.s_isize
-2) * INOPB
;
for(j
=0; j
<INOPB
*NI
; j
++) {
bread(d
, (char *)itab
, sizeof(itab
));
l3tol(&d
[0], &ip
->di_addr
[0], NADDR
);
indir(d
[i
], fn1
, fn2
, i
-(NADDR
-3));
bread(d
, (char *)idblk
, sizeof(idblk
));
for(i
=0; i
<NINDIR
; i
++) {
for(i
=0; i
<NINDIR
; i
++) {
if(ip
->di_mtime
>= spcl
.c_ddate
||
ip
->di_ctime
>= spcl
.c_ddate
) {
if(i
!= IFDIR
&& i
!= IFREG
) {
icat(ip
, tapsrec
, dmpspc
);
spcl
.c_count
= (n
*sizeof(map
[0]) + BSIZE
)/BSIZE
;
for(i
=0; i
<spcl
.c_count
; i
++) {
for(i
=0; i
<BSIZE
/sizeof(*ip
); i
++)
spcl
.c_checksum
= CHECKSUM
- s
;
struct direct dblk
[DIRPB
];
bread(d
, (char *)dblk
, sizeof(dblk
));
if(cp
[1] == '.' && cp
[2] == '\0')
if (lseek(fi
, (long)(da
*BSIZE
), 0) < 0){
msg("bread: lseek fails\n");
regc
= c
; /* put c someplace safe; it gets clobbered */
msg("(This should not happen)bread from %s [block %d]: c=0x%x, regc=0x%x, &c=0x%x, n=0x%x\n",
disk
, da
, c
, regc
, &c
, n
);
msg("Notify Robert Henry of this error.\n");
if (++breaderrors
> BREADEMAX
){
msg("More than %d block read errors from %d\n",
broadcast("DUMP IS AILING!\n");
msg("This is an unrecoverable error.\n");
if (!query("Do you want to attempt to continue?")){