Date: Tue, 17 Apr 2001 11:20:25 -0700 From: Brooks Davis <brooks@one-eyed-alien.net> To: James Housley <jim@thehousleys.net> Cc: Mike Harding <mvh@ix.netcom.com>, freebsd-stable@FreeBSD.ORG Subject: Re: Amanda dumps failing - glob change? Message-ID: <20010417112025.A27928@Odin.AC.HMC.Edu> In-Reply-To: <3ADC2823.1BDE5D7B@thehousleys.net>; from jim@thehousleys.net on Tue, Apr 17, 2001 at 07:25:23AM -0400 References: <20010413041902.E9F0B113EDC@netcom1.netcom.com> <3ADC2823.1BDE5D7B@thehousleys.net>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
On Tue, Apr 17, 2001 at 07:25:23AM -0400, James Housley wrote:
> This is most likely caused by the nodump flag changes in
> src/sbin/dump/traverse.c v 1.10.2.2 (STABLE). If you have an older
> drive (slower) and are using the nodump flag to prevent backup of files
> or directories your analysis is probably taking too long and timing
> out. On my machines I have had to keep traverse.c at version 1.10.2.1
A patch was recently posted that corrected a number of bugs in the
nodump changes. It appears to have made amanda work again for me.
Since I can't seem to fine the origional, I've appended one generated by
cvs from what's in my tree.
-- Brooks
--
Any statement of the form "X is the one, true Y" is FALSE.
PGP fingerprint 655D 519C 26A7 82E7 2529 9BF0 5D8E 8BE9 F238 1AD4
Index: traverse.c
===================================================================
RCS file: /home/ncvs/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/10 16:49:10
@@ -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);
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.4 (GNU/Linux)
Comment: For info see http://www.gnupg.org
iD8DBQE63IloXY6L6fI4GtQRAlLzAKDcFX/P1ZPC89RpPxw8FFbjIB/obQCgvwrz
3SkKURonnA7n7yp/wN4HyO4=
=/ph8
-----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010417112025.A27928>
