From d61b600dde1f267a408440011aa980e0ed44bea6 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 8 Jan 2015 01:27:13 +0100 Subject: [PATCH] util: make it easy to initialize the crtime from the current time in fd_setcrtime() --- src/journal/journal-file.c | 2 +- src/shared/util.c | 3 +++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c index c20af5d9bfc..c1b54046f9a 100644 --- a/src/journal/journal-file.c +++ b/src/journal/journal-file.c @@ -2623,7 +2623,7 @@ int journal_file_open( * attributes are not supported we'll just skip this, * and rely solely on mtime/atime/ctime of the file. */ - fd_setcrtime(f->fd, now(CLOCK_REALTIME)); + fd_setcrtime(f->fd, 0); #ifdef HAVE_GCRYPT /* Try to load the FSPRG state, and if we can't, then diff --git a/src/shared/util.c b/src/shared/util.c index 88fd78ec8d6..7d753e448a4 100644 --- a/src/shared/util.c +++ b/src/shared/util.c @@ -7670,6 +7670,9 @@ int fd_setcrtime(int fd, usec_t usec) { assert(fd >= 0); + if (usec <= 0) + usec = now(CLOCK_REALTIME); + le = htole64((uint64_t) usec); if (fsetxattr(fd, "user.crtime_usec", &le, sizeof(le), 0) < 0) return -errno;