- return syscall(SYS_futimesat, dirfd, pathname, times);
+ struct timespec ts[2];
+ if (times) {
+ int i;
+ for (i=0; i<2; i++) {
+ if (times[i].tv_usec >= 1000000ULL)
+ return __syscall_ret(-EINVAL);
+ ts[i].tv_sec = times[i].tv_sec;
+ ts[i].tv_nsec = times[i].tv_usec * 1000;
+ }
+ }
+ return utimensat(dirfd, pathname, times ? ts : 0, 0);