From: Lennart Poettering Date: Fri, 2 Oct 2015 20:39:24 +0000 (+0200) Subject: journal: don't affect atime of journal files when vacuuming X-Git-Tag: v227~26^2~9 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=7b5195e2740799a5e94cfafdcf8f6d6699c1b8af;p=thirdparty%2Fsystemd.git journal: don't affect atime of journal files when vacuuming Let's try to use O_NOATIME if we can when vacuuming old journal files, if we have the permissions for it, so that vacuuming doesn't count as proper journal read access. --- diff --git a/src/journal/journal-vacuum.c b/src/journal/journal-vacuum.c index 8c642d16e4e..394f7be46b7 100644 --- a/src/journal/journal-vacuum.c +++ b/src/journal/journal-vacuum.c @@ -112,9 +112,13 @@ static int journal_file_empty(int dir_fd, const char *name) { le64_t n_entries; ssize_t n; - fd = openat(dir_fd, name, O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); - if (fd < 0) - return -errno; + fd = openat(dir_fd, name, O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK|O_NOATIME); + if (fd < 0) { + /* Maybe failed due to O_NOATIME and lack of privileges? */ + fd = openat(dir_fd, name, O_RDONLY|O_CLOEXEC|O_NOFOLLOW|O_NONBLOCK); + if (fd < 0) + return -errno; + } if (fstat(fd, &st) < 0) return -errno;