From: Stelian Pop Date: Thu, 16 May 2002 21:22:36 +0000 (+0000) Subject: Fix nodump or exclude inodes propagation on directory tree. X-Git-Tag: release_0_4b29~5 X-Git-Url: https://git.wh0rd.org/?p=dump.git;a=commitdiff_plain;h=11fb343013ee3419eab2cd093d180b872fd47704 Fix nodump or exclude inodes propagation on directory tree. --- diff --git a/CHANGES b/CHANGES index 1f139e5..a02710c 100644 --- a/CHANGES +++ b/CHANGES @@ -1,4 +1,4 @@ -$Id: CHANGES,v 1.174 2002/05/06 08:45:41 stelian Exp $ +$Id: CHANGES,v 1.175 2002/05/16 21:22:36 stelian Exp $ Changes between versions 0.4b28 and 0.4b29 (released ??????????????) ==================================================================== @@ -15,6 +15,14 @@ Changes between versions 0.4b28 and 0.4b29 (released ??????????????) which caused restore to fail when the inode maps were not entirely contained on the first volume (when using really small volumes or when dumping a huge number of inodes). + +3. Fixed a problem in dump, where files in subdirectories of directories + that have the nodump flag set (or being excluded with -e/-E) were + sometimes incorrectly dumped (instead of being excluded). The original + fix is from David C Lawrence in the FreeBSD version + of dump: http://www.FreeBSD.org/cgi/query-pr.cgi?pr=32414 + Thanks to Ted Grzesik for reporting the bug and + help testing the patch. Changes between versions 0.4b27 and 0.4b28 (released April 12, 2002) ==================================================================== diff --git a/THANKS b/THANKS index ee07f62..c2dd136 100644 --- a/THANKS +++ b/THANKS @@ -1,4 +1,4 @@ -$Id: THANKS,v 1.57 2002/05/06 08:46:17 stelian Exp $ +$Id: THANKS,v 1.58 2002/05/16 21:22:36 stelian Exp $ Dump and restore were written by the people of the CSRG at the University of California, Berkeley. @@ -42,6 +42,7 @@ Jeremy Fitzhardinge jeremy@goop.org Eirik Fuller eirik@netcom.com Uwe Gohlke uwe@ugsoft.de Ian Gordon iangordon@users.sourceforge.net +Ted Grzesik tedgyz@roostme.com Andreas Hasenack andreas@conectiva.com.br Christian Haul haul@informatik.tu-darmstadt.de Kjetil Torgrim Homme kjetilho@ifi.uio.no diff --git a/dump/traverse.c b/dump/traverse.c index 901ef2d..09bcded 100644 --- a/dump/traverse.c +++ b/dump/traverse.c @@ -41,7 +41,7 @@ #ifndef lint static const char rcsid[] = - "$Id: traverse.c,v 1.45 2002/04/11 09:19:07 stelian Exp $"; + "$Id: traverse.c,v 1.46 2002/05/16 21:22:36 stelian Exp $"; #endif /* not lint */ #include @@ -668,12 +668,13 @@ searchdir(struct ext2_dir_entry *dp, int offset, int blocksize, char *buf, void ip = getino(dp->inode); if (TSTINO(dp->inode, dumpinomap)) { CLRINO(dp->inode, dumpinomap); - CLRINO(dp->inode, usedinomap); *tapesize -= blockest(ip); } - /* Add dir back to the dir map, to propagate nodump */ + /* Add dir back to the dir map and remove from + * usedinomap to propagate nodump */ if ((ip->di_mode & IFMT) == IFDIR) { SETINO(dp->inode, dumpdirmap); + CLRINO(dp->inode, usedinomap); *ret |= HASSUBDIRS; } } else {