提交 d575590c 编写于 作者: D Daniel P. Berrangé

storage: remove use of stat-time.h headers

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: NPavel Hrdina <phrdina@redhat.com>
Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
上级 47744e06
......@@ -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;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册