Alain Thivillon <[EMAIL PROTECTED]> writes:
> Dump seems seriously broken in 4.3-RC, any dump of level higher than 0
> seems missing a lot of files.

This is sort of a known problem.  ``Sort of'' meaning that not all
machines display it, although I think they should.  Could you please
try the patch in PR bin/26507 and let me know if it helps?  I've also
attached it for your convenience.

Thanks,

                                        Dima Dorfman
                                        [EMAIL PROTECTED]


Index: traverse.c
===================================================================
RCS file: /st/src/FreeBSD/src/sbin/dump/traverse.c,v
retrieving revision 1.12
diff -u -r1.12 traverse.c
--- traverse.c  2001/03/03 11:35:50     1.12
+++ traverse.c  2001/04/07 22:50:35
@@ -155,13 +155,15 @@
                if ((mode = (dp->di_mode & IFMT)) == 0)
                        continue;
                /*
-                * All dirs go in dumpdirmap; only inodes that are to
-                * be dumped go in usedinomap and dumpinomap, however.
+                * Everything must go in usedinomap so that a check
+                * for "in dumpdirmap but not in usedinomap" to detect
+                * dirs with nodump set has a chance of succeeding
+                * (this is used in mapdirs()).
                 */
+               SETINO(ino, usedinomap);
                if (mode == IFDIR)
                        SETINO(ino, dumpdirmap);
                if (WANTTODUMP(dp)) {
-                       SETINO(ino, usedinomap);
                        SETINO(ino, dumpinomap);
                        if (mode != IFREG && mode != IFDIR && mode != IFLNK)
                                *tapesize += 1;
@@ -169,8 +171,11 @@
                                *tapesize += blockest(dp);
                        continue;
                }
-               if (mode == IFDIR)
+               if (mode == IFDIR) {
+                       if (!nonodump && (dp->di_flags & UF_NODUMP))
+                               CLRINO(ino, usedinomap);
                        anydirskipped = 1;
+               }
        }
        /*
         * Restore gets very upset if the root is not dumped,
@@ -218,7 +223,7 @@
                 * it isn't in usedinomap, we have to go through it to
                 * propagate the nodump flag.
                 */
-               nodump = (TSTINO(ino, usedinomap) == 0);
+               nodump = !nonodump && (TSTINO(ino, usedinomap) == 0);
                if ((isdir & 1) == 0 || (TSTINO(ino, dumpinomap) && !nodump))
                        continue;
                dp = getino(ino);

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-stable" in the body of the message

Reply via email to