]> git.wh0rd.org - dump.git/blobdiff - dump/traverse.c
Get the install paths from configure.
[dump.git] / dump / traverse.c
index 8e4a6b6e347f18857eb0ef982340677f3cfda0d9..c4e1e9ab0dde48fe1ab28bb3d7aa1dfd46f3b47b 100644 (file)
@@ -41,7 +41,7 @@
 
 #ifndef lint
 static const char rcsid[] =
-       "$Id: traverse.c,v 1.28 2001/03/20 10:02:48 stelian Exp $";
+       "$Id: traverse.c,v 1.31 2001/03/28 12:59:48 stelian Exp $";
 #endif /* not lint */
 
 #include <config.h>
@@ -102,13 +102,14 @@ 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 */
 
-/* Temporary fix waiting for Andreas fixes... */
-#ifdef HAS_EXT2FS_EXT2_FS
+#ifdef HAVE_EXT2_JOURNAL_INUM
 #define ext2_journal_ino(sb) (sb->s_journal_inum)
 #else
-#define ext2_ino_t __u32
 #define ext2_journal_ino(sb) (*((__u32 *)sb + 0x38))
 #endif
+#ifndef HAVE_EXT2_INO_T
+typedef ino_t ext2_ino_t;
+#endif
 
 #ifndef EXT3_FEATURE_COMPAT_HAS_JOURNAL
 #define EXT3_FEATURE_COMPAT_HAS_JOURNAL                0x0004
@@ -127,6 +128,9 @@ extern int iexclude_num;                    /* number of elements in list */
 #define EXT2_LIB_FEATURE_INCOMPAT_SUPP (EXT3_FEATURE_INCOMPAT_RECOVER | \
                                        EXT2_FEATURE_INCOMPAT_FILETYPE)
 #endif
+#ifndef EXT2_RESIZE_INO
+#define EXT2_RESIZE_INO                        7
+#endif
 
 int dump_fs_open(const char *disk, ext2_filsys *fs)
 {
@@ -135,7 +139,7 @@ int dump_fs_open(const char *disk, ext2_filsys *fs)
        retval = ext2fs_open(disk, EXT2_FLAG_FORCE, 0, 0, unix_io_manager, fs);
        if (!retval) {
                struct ext2_super_block *es = (*fs)->super;
-               ext2_ino_t journal_ino = ext2_journal_ino(es);
+               dump_ino_t journal_ino = ext2_journal_ino(es);
 
                if (es->s_feature_incompat & EXT3_FEATURE_INCOMPAT_JOURNAL_DEV){
                        fprintf(stderr, "This an journal, not a filesystem!\n");
@@ -151,13 +155,16 @@ int dump_fs_open(const char *disk, ext2_filsys *fs)
                        retval = EXT2_ET_UNSUPP_FEATURE;
                        ext2fs_close(*fs);
                }
-               else if (es->s_feature_compat &
+               else {
+                       if (es->s_feature_compat &
                                EXT3_FEATURE_COMPAT_HAS_JOURNAL && 
-                               journal_ino && 
-                               !exclude_ino((dump_ino_t)journal_ino)) {
-                       iexclude_list[iexclude_num++] = (dump_ino_t)journal_ino;
-                       msg("Added ext3 journal inode %d to exclude list\n",
-                           journal_ino);
+                               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;
                }
        }
        return retval;