From d575590c52b519f1f0343304526dda7cf560b6d0 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Daniel=20P=2E=20Berrang=C3=A9?= Date: Wed, 22 Jan 2020 11:38:28 +0000 Subject: [PATCH] storage: remove use of stat-time.h headers MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit The gnulib stat-time.h header provides wrapper functions to hide the differences in 'struct stat' between various platforms. Linux and FreeBSD support the same names, except for birthtime which Linux only provides in the new 'statx()' syscall we're not using. macOS has completely different naming. Since we only rely on this code in one place we just use conditionals at time of need. Reviewed-by: Pavel Hrdina Signed-off-by: Daniel P. Berrangé --- src/storage/storage_util.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c index 987d937b04..7bbcfde064 100644 --- a/src/storage/storage_util.c +++ b/src/storage/storage_util.c @@ -71,7 +71,6 @@ #include "virfile.h" #include "virjson.h" #include "virqemu.h" -#include "stat-time.h" #include "virstring.h" #include "virxml.h" #include "virfdstream.h" @@ -1830,10 +1829,22 @@ virStorageBackendUpdateVolTargetInfoFD(virStorageSourcePtr target, if (!target->timestamps && VIR_ALLOC(target->timestamps) < 0) return -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); + +#ifdef __APPLE__ + target->timestamps->atime = sb->st_atimespec; + target->timestamps->btime = sb->st_birthtimespec; + target->timestamps->ctime = sb->st_ctimespec; + target->timestamps->mtime = sb->st_mtimespec; +#else /* ! __APPLE__ */ + target->timestamps->atime = sb->st_atim; +# ifdef __linux__ + target->timestamps->btime = (struct timespec){0, 0}; +# else /* ! __linux__ */ + target->timestamps->btime = sb->st_birthtim; +# endif /* ! __linux__ */ + target->timestamps->ctime = sb->st_ctim; + target->timestamps->mtime = sb->st_mtim; +#endif /* ! __APPLE__ */ target->type = VIR_STORAGE_TYPE_FILE; -- 2.47.2