]> git.wh0rd.org - dump.git/blobdiff - dump/traverse.c
Be sure the di_size in a map header has the correct value.
[dump.git] / dump / traverse.c
index 9e68fdd596fbb16df9b6952062f59ec250142cd6..147df5b60e11486f3ce80a0f72fbe2aea274ec96 100644 (file)
@@ -37,7 +37,7 @@
 
 #ifndef lint
 static const char rcsid[] =
-       "$Id: traverse.c,v 1.62 2004/11/22 10:22:43 stelian Exp $";
+       "$Id: traverse.c,v 1.64 2004/12/15 09:31:49 stelian Exp $";
 #endif /* not lint */
 
 #include <config.h>
@@ -987,7 +987,8 @@ convert_dir(struct ext2_dir_entry *dirent, UNUSED(int offset),
 
        /* do not save entries to excluded inodes */
        if (TSTINO(dirent->inode, dumpinomap) == 0 &&
-           TSTINO(dirent->inode, dumpdirmap) == 0)
+           TSTINO(dirent->inode, dumpdirmap) == 0 &&
+           TSTINO(dirent->inode, usedinomap) == 0)
                return 0;
 
        p = (struct convert_dir_context *)private;
@@ -1246,6 +1247,7 @@ dumpmap(char *map, int type, dump_ino_t ino)
 
        spcl.c_type = type;
        spcl.c_count = howmany(mapsize * sizeof(char), TP_BSIZE);
+       spcl.c_dinode.di_size = mapsize;
        writeheader(ino);
        for (i = 0, cp = map; i < spcl.c_count; i++, cp += TP_BSIZE)
                writerec(cp, 0);