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