!!! DON'T PUSH until stat-time lgpl 3 issue is fixed !!! To tests this change lgpl version to 3 in bootstrap.conf:176 stat-time offers a much cleaner way of getting timestamps than the current implementation. Therefor the implementation is changed. --- bootstrap.conf | 1 + src/storage/storage_backend.c | 25 +++++-------------------- 2 files changed, 6 insertions(+), 20 deletions(-) diff --git a/bootstrap.conf b/bootstrap.conf index 9b42cbf..d80d92d 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -90,6 +90,7 @@ sigaction sigpipe snprintf socket +stat-time stdarg stpcpy strchrnul diff --git a/src/storage/storage_backend.c b/src/storage/storage_backend.c index 1ef6df9..c665711 100644 --- a/src/storage/storage_backend.c +++ b/src/storage/storage_backend.c @@ -57,6 +57,7 @@ #include "storage_backend.h" #include "logging.h" #include "virfile.h" +#include "stat-time.h" #if WITH_STORAGE_LVM # include "storage_backend_logical.h" @@ -1155,11 +1156,6 @@ virStorageBackendUpdateVolTargetInfoFD(virStorageVolTargetPtr target, unsigned long long *capacity) { struct stat sb; - struct timespec *const atime = &target->timestamps.atime, - *const btime = &target->timestamps.btime, - *const catime = &target->timestamps.ctime, - *const mtime = &target->timestamps.mtime; - #if HAVE_SELINUX security_context_t filecon = NULL; #endif @@ -1213,21 +1209,10 @@ virStorageBackendUpdateVolTargetInfoFD(virStorageVolTargetPtr target, target->perms.uid = sb.st_uid; target->perms.gid = sb.st_gid; - atime->tv_sec = sb.st_atime; - mtime->tv_sec = sb.st_mtime; - catime->tv_sec = sb.st_ctime; -#if _BSD_SOURCE || _SVID_SOURCE || \ - _POSIX_C_SOURCE >= 200809L || _XOPEN_SOURCE >= 700 - atime->tv_nsec = sb.st_atim.tv_nsec; - mtime->tv_nsec = sb.st_mtim.tv_nsec; - catime->tv_nsec = sb.st_ctim.tv_nsec; -#else - atime->tv_nsec = sb.st_atimensec; - mtime->tv_nsec = sb.st_mtimensec; - catime->tv_nsec = sb.st_ctimensec; -#endif - btime->tv_sec = -1; - btime->tv_nsec = -1; + target->timestamps.atime = get_stat_atime(&sb); + target->timestamps.btime = get_stat_birthtime(&sb); + target->timestamps.ctime = get_stat_ctime(&sb); + target->timestamps.mtime = get_stat_mtime(&sb); VIR_FREE(target->perms.label); -- 1.7.9.5 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list