* (C) Copyright 2012 Commissariat a l'energie atomique et aux energies
* alternatives
*
- * Copyright (c) 2013, 2014, Intel Corporation.
+ * Copyright (c) 2013, 2015, Intel Corporation.
*
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the GNU Lesser General Public License
* Author: Henri Doreau <henri.doreau@cea.fr>
*/
+#include <fcntl.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <dirent.h>
#include <stdarg.h>
#include <sys/stat.h>
+#include <sys/time.h>
#include <sys/types.h>
+#include <time.h>
#include <utime.h>
#include <sys/syscall.h>
#include <fnmatch.h>
-#include <glob.h>
#include <signal.h>
#ifdef HAVE_LINUX_UNISTD_H
#include <linux/unistd.h>
hai = &hcp->copy.hc_hai;
if (hai->hai_action == HSMA_RESTORE && errval == 0) {
- struct timeval tv[2];
-
- /* Set {a,m}time of volatile file to that of original. */
- tv[0].tv_sec = hcp->stat.st_atime;
- tv[0].tv_usec = 0;
- tv[1].tv_sec = hcp->stat.st_mtime;
- tv[1].tv_usec = 0;
- if (futimes(hcp->data_fd, tv) < 0) {
+ struct ll_futimes_3 lfu = {
+ .lfu_atime_sec = hcp->stat.st_atim.tv_sec,
+ .lfu_atime_nsec = hcp->stat.st_atim.tv_nsec,
+ .lfu_mtime_sec = hcp->stat.st_mtim.tv_sec,
+ .lfu_mtime_nsec = hcp->stat.st_mtim.tv_nsec,
+ .lfu_ctime_sec = hcp->stat.st_ctim.tv_sec,
+ .lfu_ctime_nsec = hcp->stat.st_ctim.tv_nsec,
+ };
+
+ /* Set {a,m,c}time of volatile file to that of original. */
+ if (ioctl(hcp->data_fd, LL_IOC_FUTIMES_3, &lfu) < 0) {
errval = -errno;
goto end;
}