From caa2f4c0c9613b2e02aafa308c8fb092576014a9 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= Date: Sun, 26 Oct 2014 00:14:30 -0400 Subject: [PATCH] journald: fix flushing Commit 74055aa762 'journalctl: add new --flush command and make use of it in systemd-journal-flush.service' broke flushing because journald checks for the /run/systemd/journal/flushed file before opening the permanent journal. When the creation of this file was postponed, flushing stoppage ensued. --- src/journal/journald-server.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c index b49359e96..12735c4b8 100644 --- a/src/journal/journald-server.c +++ b/src/journal/journald-server.c @@ -919,7 +919,7 @@ finish: } -static int system_journal_open(Server *s) { +static int system_journal_open(Server *s, bool flush_requested) { int r; char *fn; sd_id128_t machine; @@ -935,7 +935,8 @@ static int system_journal_open(Server *s) { if (!s->system_journal && (s->storage == STORAGE_PERSISTENT || s->storage == STORAGE_AUTO) && - access("/run/systemd/journal/flushed", F_OK) >= 0) { + (flush_requested + || access("/run/systemd/journal/flushed", F_OK) >= 0)) { /* If in auto mode: first try to create the machine * path, but not the prefix. @@ -1029,7 +1030,7 @@ int server_flush_to_var(Server *s) { if (!s->runtime_journal) return 0; - system_journal_open(s); + system_journal_open(s, true); if (!s->system_journal) return 0; @@ -1586,7 +1587,7 @@ int server_init(Server *s) { server_cache_boot_id(s); server_cache_machine_id(s); - r = system_journal_open(s); + r = system_journal_open(s, false); if (r < 0) return r; -- 2.30.2