|
From: Stelian P. <st...@po...> - 2005-01-25 13:28:25
|
On Mon, Jan 24, 2005 at 11:12:31PM +0100, Stelian Pop wrote:
[...]
> Unrelated, but wouldn't it be simpler to exclude the whole directory ?
[...]
> I'll take a look at this tommorow (but I am unable to reproduce it
> here at least with my setup).
In fact I was unable to reproduce it because I always exclude whole
directories and the problem arises only when excluding single files.
The attached patch should fix it.
Stelian.
Index: traverse.c
===================================================================
RCS file: /cvsroot/dump/dump/dump/traverse.c,v
retrieving revision 1.64
diff -u -r1.64 traverse.c
--- traverse.c 15 Dec 2004 09:31:49 -0000 1.64
+++ traverse.c 25 Jan 2005 13:24:46 -0000
@@ -283,6 +283,9 @@
*/
SETINO(ino, usedinomap);
+ if (NODUMP_FLAG(dp))
+ do_exclude_ino(ino, "nodump attribute");
+
if (mode == IFDIR)
SETINO(ino, dumpdirmap);
if (WANTTODUMP(dp, ino)) {
@@ -296,7 +299,7 @@
return;
}
if (mode == IFDIR) {
- if ( NODUMP_FLAG(dp) || exclude_ino(ino) )
+ if (exclude_ino(ino))
CLRINO(ino, usedinomap);
*dirskipped = 1;
}
@@ -986,9 +989,7 @@
int reclen;
/* do not save entries to excluded inodes */
- if (TSTINO(dirent->inode, dumpinomap) == 0 &&
- TSTINO(dirent->inode, dumpdirmap) == 0 &&
- TSTINO(dirent->inode, usedinomap) == 0)
+ if (exclude_ino(dirent->inode))
return 0;
p = (struct convert_dir_context *)private;
--
Stelian Pop <st...@po...>
|