X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=dump%2Fmain.c;h=cc1ed919ab0109739920748656d33f87520f9683;hb=d6f78b132d0cce9af4090f2938771ec9c9e6deb3;hp=263945a2543d05c692ed274d4d1a321c592cf88c;hpb=144a6db136ca266241860aadb1af8b2702df97fd;p=dump.git diff --git a/dump/main.c b/dump/main.c index 263945a..cc1ed91 100644 --- a/dump/main.c +++ b/dump/main.c @@ -2,7 +2,7 @@ * Ported to Linux's Second Extended File System as part of the * dump and restore backup suit * Remy Card , 1994-1997 - * Stelian Pop , 1999 + * Stelian Pop , 1999-2000 */ /*- @@ -40,7 +40,7 @@ #ifndef lint static const char rcsid[] = - "$Id: main.c,v 1.9 1999/11/22 19:08:50 tiniou Exp $"; + "$Id: main.c,v 1.13 2000/01/25 14:14:12 stelian Exp $"; #endif /* not lint */ #include @@ -514,8 +514,8 @@ main(int argc, char *argv[]) } if (sizest) { - printf("%ld\n", tapesize + 10); - exit(X_STARTUP); + printf("%.0f\n", ((double)tapesize + 10) * TP_BSIZE); + exit(X_FINOK); } /* stop here for size estimate */ if (pipeout || unlimited) { @@ -595,6 +595,11 @@ main(int argc, char *argv[]) if ((dp->di_mode & IFMT) != IFDIR) continue; #ifdef __linux__ + /* + * Skip directory inodes deleted and not yes reallocated... + */ + if (dp->di_nlink == 0 || dp->di_dtime != 0) + continue; (void)dumpdirino(dp, ino); #else (void)dumpino(dp, ino); @@ -603,8 +608,6 @@ main(int argc, char *argv[]) msg("dumping (Pass IV) [regular files]\n"); for (map = dumpinomap, ino = 1; ino < maxino; ino++) { - int mode; - if (((ino - 1) % NBBY) == 0) /* map is offset by 1 */ dirty = *map++; else @@ -615,9 +618,14 @@ main(int argc, char *argv[]) * Skip inodes deleted and reallocated as directories. */ dp = getino(ino); - mode = dp->di_mode & IFMT; - if (mode == IFDIR) + if ((dp->di_mode & IFMT) == IFDIR) continue; +#ifdef __linux__ + /* + * No need to check here for deleted and not yes reallocated inodes + * since this is done in dumpino(). + */ +#endif (void)dumpino(dp, ino); }