X-Git-Url: https://git.wh0rd.org/?p=dump.git;a=blobdiff_plain;f=dump%2Ftraverse.c;h=34be0ec9115bb8ddc369dac0c2bab5976c5af978;hp=491d43ad28169b5b949817d656ed9398b2351348;hb=221107b058053e59e420bfffede2e01396051267;hpb=c5e38bc12e0a29762e7a4561c815ab8a7c8ade56 diff --git a/dump/traverse.c b/dump/traverse.c index 491d43a..34be0ec 100644 --- a/dump/traverse.c +++ b/dump/traverse.c @@ -37,7 +37,7 @@ #ifndef lint static const char rcsid[] = - "$Id: traverse.c,v 1.69 2010/04/28 09:29:50 stelian Exp $"; + "$Id: traverse.c,v 1.72 2011/02/21 10:36:47 stelian Exp $"; #endif /* not lint */ #include @@ -240,7 +240,7 @@ blockest(struct dinode const *dp) #define MSINCE(dp, t) \ ((dp)->di_mtime >= (t)) #define CHANGEDSINCE(dp, t) \ - (CSINCE(dp, t) || MSINCE(dp, t)) + CSINCE(dp, t) /* The NODUMP_FLAG macro tests if a file has the nodump flag. */ #ifdef UF_NODUMP @@ -574,9 +574,10 @@ mapdirs(dump_ino_t maxino, long long *tapesize) * in usedinomap, but we have to go through it anyway * to propagate the nodump attribute. */ + if ((isdir & 1) == 0) + continue; nodump = (TSTINO(ino, usedinomap) == 0); - if ((isdir & 1) == 0 || - (TSTINO(ino, dumpinomap) && nodump == 0)) + if (TSTINO(ino, dumpinomap) && nodump == 0) continue; dp = getino(ino); #ifdef __linux__ @@ -991,7 +992,7 @@ dumpino(struct dinode *dp, dump_ino_t ino, int metaonly) bc.buf = (int *)malloc (bc.max * sizeof (int)); bc.cnt = 0; bc.ino = ino; - bc.next_block = NDADDR; + bc.next_block = 0; ext2fs_block_iterate2(fs, (ext2_ino_t)ino, BLOCK_FLAG_DATA_ONLY, NULL, dumponeblock, (void *)&bc); /* deal with holes at the end of the inode */