X-Git-Url: https://git.wh0rd.org/?p=dump.git;a=blobdiff_plain;f=dump%2Ftraverse.c;h=147df5b60e11486f3ce80a0f72fbe2aea274ec96;hp=41047999c7d921c07237655e50db09f3840136b3;hb=dba36a3e9b1fb9e7c207ab8b5f7cb7f502867780;hpb=e1e4be20b0192a2988eab70a31fb1428c4c81eec diff --git a/dump/traverse.c b/dump/traverse.c index 4104799..147df5b 100644 --- a/dump/traverse.c +++ b/dump/traverse.c @@ -37,7 +37,7 @@ #ifndef lint static const char rcsid[] = - "$Id: traverse.c,v 1.61 2004/07/01 09:14:49 stelian Exp $"; + "$Id: traverse.c,v 1.64 2004/12/15 09:31:49 stelian Exp $"; #endif /* not lint */ #include @@ -985,6 +985,12 @@ convert_dir(struct ext2_dir_entry *dirent, UNUSED(int offset), struct direct *dp; int reclen; + /* do not save entries to excluded inodes */ + if (TSTINO(dirent->inode, dumpinomap) == 0 && + TSTINO(dirent->inode, dumpdirmap) == 0 && + TSTINO(dirent->inode, usedinomap) == 0) + return 0; + p = (struct convert_dir_context *)private; reclen = EXT2_DIR_REC_LEN((dirent->name_len & 0xFF) + 1); @@ -1241,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);