]> git.wh0rd.org - dump.git/blobdiff - dump/traverse.c
Fixed -F to be run even if -M/-f is in use.
[dump.git] / dump / traverse.c
index fb868dba4050aec08cc81ae8a961cc5eb6045f19..051a226bf59b8d5fe8ee4651889586ecff645e87 100644 (file)
@@ -37,7 +37,7 @@
 
 #ifndef lint
 static const char rcsid[] =
-       "$Id: traverse.c,v 1.57 2004/03/01 15:38:13 stelian Exp $";
+       "$Id: traverse.c,v 1.58 2004/03/08 14:04:04 stelian Exp $";
 #endif /* not lint */
 
 #include <config.h>
@@ -208,6 +208,14 @@ blockest(struct dinode const *dp)
        if (blkest > sizeest)
                blkest = sizeest;
 #ifdef __linux__
+       if ((dp->di_mode & IFMT) == IFDIR) {
+               /*
+                * for directories, assume only half of space is filled
+                * with entries.  
+                */
+                blkest = blkest / 2;
+                sizeest = sizeest / 2;
+       }
        if (i_size > (u_quad_t)fs->blocksize * NDADDR) {
                /* calculate the number of indirect blocks on the dump tape */
                blkest +=