X-Git-Url: https://git.wh0rd.org/?p=dump.git;a=blobdiff_plain;f=dump%2Ftraverse.c;h=975f6f82e3bf8957c28dd937a68a68ce05ffd905;hp=632a6a39d4350823cd042318a36b17dd41ff3fab;hb=1df5c692513d8067e0892398e1301b7eb8bba2a1;hpb=ad9220730d7bc96534093e6957268db49d05f7ad diff --git a/dump/traverse.c b/dump/traverse.c index 632a6a3..975f6f8 100644 --- a/dump/traverse.c +++ b/dump/traverse.c @@ -41,7 +41,7 @@ #ifndef lint static const char rcsid[] = - "$Id: traverse.c,v 1.35 2001/07/18 08:50:58 stelian Exp $"; + "$Id: traverse.c,v 1.38 2001/08/17 09:55:09 stelian Exp $"; #endif /* not lint */ #include @@ -102,9 +102,6 @@ static void dmpindir __P((dump_ino_t ino, daddr_t blk, int level, fsizeT *size)) static int searchdir __P((dump_ino_t ino, daddr_t blkno, long size, long filesize)); #endif static void mapfileino __P((dump_ino_t ino, struct dinode const *dp, long *tapesize, int *dirskipped)); -static int exclude_ino __P((dump_ino_t ino)); -extern dump_ino_t iexclude_list[IEXCLUDE_MAXNUM]; /* the inode exclude list */ -extern int iexclude_num; /* number of elements in list */ #ifdef HAVE_EXT2_JOURNAL_INUM #define ext2_journal_ino(sb) (sb->s_journal_inum) @@ -162,13 +159,9 @@ int dump_fs_open(const char *disk, ext2_filsys *fs) else { if (es->s_feature_compat & EXT3_FEATURE_COMPAT_HAS_JOURNAL && - journal_ino && !exclude_ino(journal_ino)) { - iexclude_list[iexclude_num++] = journal_ino; - msg("Exclude ext3 journal inode %u\n", - journal_ino); - } - if (!exclude_ino(EXT2_RESIZE_INO)) - iexclude_list[iexclude_num++] = EXT2_RESIZE_INO; + journal_ino) + do_exclude_ino(journal_ino, "journal inode"); + do_exclude_ino(EXT2_RESIZE_INO, "resize inode"); } } return retval; @@ -224,22 +217,6 @@ blockest(struct dinode const *dp) return (blkest + 1); } -/* - * This tests whether an inode is in the exclude list - */ -int -exclude_ino(dump_ino_t ino) -{ - /* 04-Feb-00 ILC */ - if (iexclude_num) { /* if there are inodes in the exclude list */ - int idx; /* then check this inode against it */ - for (idx = 0; idx < iexclude_num; idx++) - if (ino == iexclude_list[idx]) - return 1; - } - return 0; -} - /* Auxiliary macro to pick up files changed since previous dump. */ #define CHANGEDSINCE(dp, t) \ ((dp)->di_mtime >= (t) || (dp)->di_ctime >= (t)) @@ -921,8 +898,8 @@ dumpino(struct dinode *dp, dump_ino_t ino) ext2fs_block_iterate2(fs, (ext2_ino_t)ino, 0, NULL, dumponeblock, (void *)&bc); /* deal with holes at the end of the inode */ - if (i_size > bc.next_block*sblock->fs_fsize) { - remaining = i_size - bc.next_block*sblock->fs_fsize; + if (i_size > ((u_quad_t)bc.next_block) * sblock->fs_fsize) { + remaining = i_size - ((u_quad_t)bc.next_block) * sblock->fs_fsize; for (i = 0; i < howmany(remaining, sblock->fs_fsize); i++) { bc.buf[bc.cnt++] = 0; if (bc.cnt == bc.max) {