Adam Tkac 87ddb0
diff -ur dump-0.4b41.orig/restore/dirs.c dump-0.4b41/restore/dirs.c
Adam Tkac 87ddb0
--- dump-0.4b41.orig/restore/dirs.c	2005-05-28 13:34:47.000000000 -0500
Adam Tkac 87ddb0
+++ dump-0.4b41/restore/dirs.c	2007-01-26 18:32:02.000000000 -0600
Adam Tkac 87ddb0
@@ -710,6 +710,10 @@
Adam Tkac 87ddb0
 			cp = myname(ep);
Adam Tkac 87ddb0
 			(void) chown(cp, node.uid, node.gid);
Adam Tkac 87ddb0
 			(void) chmod(cp, node.mode);
Adam Tkac 87ddb0
+			utimes(cp, node.timep);
Adam Tkac 87ddb0
+			if (node.xattr)
Adam Tkac 87ddb0
+				xattr_extract(cp, xattr);
Adam Tkac 87ddb0
+			ep->e_flags &= ~NEW;
Adam Tkac 87ddb0
 			if (node.flags)
Adam Tkac 87ddb0
 #ifdef	__linux__
Adam Tkac 87ddb0
 				(void) lsetflags(cp, node.flags);
Adam Tkac 87ddb0
@@ -719,10 +723,6 @@
Adam Tkac 87ddb0
 				(void) chflags(cp, node.flags);
Adam Tkac 87ddb0
 #endif
Adam Tkac 87ddb0
 #endif
Adam Tkac 87ddb0
-			utimes(cp, node.timep);
Adam Tkac 87ddb0
-			if (node.xattr)
Adam Tkac 87ddb0
-				xattr_extract(cp, xattr);
Adam Tkac 87ddb0
-			ep->e_flags &= ~NEW;
Adam Tkac 87ddb0
 		}
Adam Tkac 87ddb0
 	}
Adam Tkac 87ddb0
 	if (ferror(mf))
Adam Tkac 87ddb0
diff -ur dump-0.4b41.orig/restore/tape.c dump-0.4b41/restore/tape.c
Adam Tkac 87ddb0
--- dump-0.4b41.orig/restore/tape.c	2007-01-26 18:14:25.000000000 -0600
Adam Tkac 87ddb0
+++ dump-0.4b41/restore/tape.c	2007-01-26 18:51:52.000000000 -0600
Adam Tkac 87ddb0
@@ -908,6 +908,8 @@
Adam Tkac 87ddb0
 		}
Adam Tkac 87ddb0
 		(void) chown(name, curfile.dip->di_uid, curfile.dip->di_gid);
Adam Tkac 87ddb0
 		(void) chmod(name, mode);
Adam Tkac 87ddb0
+		extractattr(name);
Adam Tkac 87ddb0
+		utimes(name, timep);
Adam Tkac 87ddb0
 		if (flags)
Adam Tkac 87ddb0
 #ifdef  __linux__
Adam Tkac 87ddb0
 			(void) lsetflags(name, flags);
Adam Tkac 87ddb0
@@ -922,8 +924,6 @@
Adam Tkac 87ddb0
 #endif
Adam Tkac 87ddb0
 #endif
Adam Tkac 87ddb0
 		skipfile();
Adam Tkac 87ddb0
-		extractattr(name);
Adam Tkac 87ddb0
-		utimes(name, timep);
Adam Tkac 87ddb0
 		return (GOOD);
Adam Tkac 87ddb0
 
Adam Tkac 87ddb0
 	case IFCHR:
Adam Tkac 87ddb0
@@ -944,6 +944,8 @@
Adam Tkac 87ddb0
 		}
Adam Tkac 87ddb0
 		(void) chown(name, curfile.dip->di_uid, curfile.dip->di_gid);
Adam Tkac 87ddb0
 		(void) chmod(name, mode);
Adam Tkac 87ddb0
+		extractattr(name);
Adam Tkac 87ddb0
+		utimes(name, timep);
Adam Tkac 87ddb0
 		if (flags)
Adam Tkac 87ddb0
 #ifdef	__linux__
Adam Tkac 87ddb0
 			{
Adam Tkac 87ddb0
@@ -964,8 +966,6 @@
Adam Tkac 87ddb0
 #endif
Adam Tkac 87ddb0
 #endif
Adam Tkac 87ddb0
 		skipfile();
Adam Tkac 87ddb0
-		extractattr(name);
Adam Tkac 87ddb0
-		utimes(name, timep);
Adam Tkac 87ddb0
 		return (GOOD);
Adam Tkac 87ddb0
 
Adam Tkac 87ddb0
 	case IFREG:
Adam Tkac 87ddb0
@@ -994,6 +994,8 @@
Adam Tkac 87ddb0
 			skipfile();
Adam Tkac 87ddb0
 		(void) chown(name, luid, lgid);
Adam Tkac 87ddb0
 		(void) chmod(name, mode);
Adam Tkac 87ddb0
+		extractattr(name);
Adam Tkac 87ddb0
+		utimes(name, timep);
Adam Tkac 87ddb0
 		if (flags)
Adam Tkac 87ddb0
 #ifdef	__linux__
Adam Tkac 87ddb0
 			(void) lsetflags(name, flags);
Adam Tkac 87ddb0
@@ -1007,8 +1009,6 @@
Adam Tkac 87ddb0
 			(void) chflags(name, flags);
Adam Tkac 87ddb0
 #endif
Adam Tkac 87ddb0
 #endif
Adam Tkac 87ddb0
-		extractattr(name);
Adam Tkac 87ddb0
-		utimes(name, timep);
Adam Tkac 87ddb0
 		return (GOOD);
Adam Tkac 87ddb0
 	}
Adam Tkac 87ddb0
 	}
Adam Tkac 87ddb0
@@ -1216,8 +1216,8 @@
Adam Tkac 87ddb0
 		(void) fchown(ofile, uid, gid);
Adam Tkac 87ddb0
 		(void) fchmod(ofile, mode);
Adam Tkac 87ddb0
 		(void) close(ofile);
Adam Tkac 87ddb0
-		(void) lsetflags(oFileRsrc, flags);
Adam Tkac 87ddb0
 		utimes(oFileRsrc, timep);
Adam Tkac 87ddb0
+		(void) lsetflags(oFileRsrc, flags);
Adam Tkac 87ddb0
 		return (GOOD);
Adam Tkac 87ddb0
 	}
Adam Tkac 87ddb0
 	/* NOTREACHED */