Change do_setattrlist_times() to use an stp arg.
diff --git a/syscall.c b/syscall.c
index 35caa07..bcd9738 100644
--- a/syscall.c
+++ b/syscall.c
@@ -367,7 +367,7 @@
}
#ifdef HAVE_SETATTRLIST
-int do_setattrlist_times(const char *fname, time_t modtime, uint32 mod_nsec)
+int do_setattrlist_times(const char *fname, STRUCT_STAT *stp)
{
struct attrlist attrList;
struct timespec ts;
@@ -375,8 +375,8 @@
if (dry_run) return 0;
RETURN_ERROR_IF_RO_OR_LO;
- ts.tv_sec = modtime;
- ts.tv_nsec = mod_nsec;
+ ts.tv_sec = stp->st_mtime;
+ ts.tv_nsec = stp->ST_MTIME_NSEC;
memset(&attrList, 0, sizeof attrList);
attrList.bitmapcount = ATTR_BIT_MAP_COUNT;
diff --git a/util.c b/util.c
index 1935a77..03917c3 100644
--- a/util.c
+++ b/util.c
@@ -131,7 +131,7 @@
switch (switch_step) {
#ifdef HAVE_SETATTRLIST
#include "case_N.h"
- if (do_setattrlist_times(fname, modtime, mod_nsec) == 0)
+ if (do_setattrlist_times(fname, stp) == 0)
break;
if (errno != ENOSYS)
return -1;