]> git.wh0rd.org - dump.git/blobdiff - dump/tape.c
Restore does not allow -P and -A at the same time.
[dump.git] / dump / tape.c
index 89f630d278ea3484c4ac8aa8054575a81bcdc7a6..3e41622b3f51057daa35ac73855ae17245f250f9 100644 (file)
@@ -37,7 +37,7 @@
 
 #ifndef lint
 static const char rcsid[] =
-       "$Id: tape.c,v 1.88 2005/03/02 08:46:55 stelian Exp $";
+       "$Id: tape.c,v 1.90 2008/06/04 19:27:48 stelian Exp $";
 #endif /* not lint */
 
 #include <config.h>
@@ -246,7 +246,7 @@ writerec(const void *dp, int isspcl)
        /* Need to write it to the archive file */
        if (! AfileActive && isspcl && (spcl.c_type == TS_END))
                AfileActive = 1;
-       if (AfileActive && Afile >= 0) {
+       if (AfileActive && Afile >= 0 && !(spcl.c_flags & DR_EXTATTRIBUTES)) {
                /* When we dump an inode which is not a directory,
                 * it means we ended the archive contents */
                if (isspcl && (spcl.c_type == TS_INODE) &&
@@ -1310,7 +1310,8 @@ doslave(int cmd,
                                if ((spclptr->c_magic == NFS_MAGIC) && 
                                                        (spclptr->c_type == TS_INODE) &&
                                                        (spclptr->c_date == gThisDumpDate) &&
-                                                       !(spclptr->c_dinode.di_mode & S_IFDIR)
+                                                       !(spclptr->c_dinode.di_mode & S_IFDIR) &&
+                                                       !(spclptr->c_flags & DR_EXTATTRIBUTES)
                                                ) {
                                        foundone = 1;
                                        /* if (cntntrecs >= maxntrecs) {         only write every maxntrecs amount of data */