X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=dump%2Ftraverse.c;h=cfa16b339871f01eea497ddbe626f052c2b126e4;hb=a9c5ed48f9b7e1889ee7694c5666ddb39814fe56;hp=c8547604a7c0751f14833407938e762acf1ca56f;hpb=0cedbda5e645e6a30ef47fa3e0fae683160d4431;p=dump.git diff --git a/dump/traverse.c b/dump/traverse.c index c854760..cfa16b3 100644 --- a/dump/traverse.c +++ b/dump/traverse.c @@ -41,7 +41,7 @@ #ifndef lint static const char rcsid[] = - "$Id: traverse.c,v 1.44 2002/04/04 08:20:23 stelian Exp $"; + "$Id: traverse.c,v 1.47 2002/06/10 14:05:00 stelian Exp $"; #endif /* not lint */ #include @@ -51,6 +51,7 @@ static const char rcsid[] = #include #include #endif +#include #include #include @@ -668,12 +669,13 @@ searchdir(struct ext2_dir_entry *dp, int offset, int blocksize, char *buf, void ip = getino(dp->inode); if (TSTINO(dp->inode, dumpinomap)) { CLRINO(dp->inode, dumpinomap); - CLRINO(dp->inode, usedinomap); *tapesize -= blockest(ip); } - /* Add dir back to the dir map, to propagate nodump */ + /* Add dir back to the dir map and remove from + * usedinomap to propagate nodump */ if ((ip->di_mode & IFMT) == IFDIR) { SETINO(dp->inode, dumpdirmap); + CLRINO(dp->inode, usedinomap); *ret |= HASSUBDIRS; } } else { @@ -827,7 +829,6 @@ dumpino(struct dinode *dp, dump_ino_t ino, int metaonly) spcl.c_count = 0; if (metaonly && (dp->di_mode & S_IFMT)) { - printf("Write header with spcl.c_count=%d\n",spcl.c_count); spcl.c_flags |= DR_METAONLY; spcl.c_count = 0; writeheader(ino); @@ -1278,7 +1279,6 @@ void bread(daddr_t blkno, char *buf, int size) { int cnt, i; - extern int errno; loop: #ifdef __linux__ @@ -1306,11 +1306,12 @@ loop: goto loop; } if (cnt == -1) - msg("read error from %s: %s: [block %d]: count=%d\n", - disk, strerror(errno), blkno, size); + msg("read error from %s: %s: [block %d, ext2blk %d]: count=%d\n", + disk, strerror(errno), blkno, + dbtofsb(sblock, blkno), size); else - msg("short read error from %s: [block %d]: count=%d, got=%d\n", - disk, blkno, size, cnt); + msg("short read error from %s: [block %d, ext2blk %d]: count=%d, got=%d\n", + disk, blkno, dbtofsb(sblock, blkno), size, cnt); if (++breaderrors > breademax) { msg("More than %d block read errors from %d\n", breademax, disk); @@ -1338,11 +1339,12 @@ loop: if ((cnt = read(diskfd, buf, (int)dev_bsize)) == dev_bsize) continue; if (cnt == -1) { - msg("read error from %s: %s: [sector %d]: count=%d\n", - disk, strerror(errno), blkno, dev_bsize); + msg("read error from %s: %s: [sector %d, ext2blk %d]: count=%d\n", + disk, strerror(errno), blkno, + dbtofsb(sblock, blkno), dev_bsize); continue; } - msg("short read error from %s: [sector %d]: count=%d, got=%d\n", - disk, blkno, dev_bsize, cnt); + msg("short read error from %s: [sector %d, ext2blk %d]: count=%d, got=%d\n", + disk, blkno, dbtofsb(sblock, blkno), dev_bsize, cnt); } }