diff options
author | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2014-10-26 00:14:30 -0400 |
---|---|---|
committer | Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> | 2014-10-26 00:35:23 -0400 |
commit | caa2f4c0c9613b2e02aafa308c8fb092576014a9 (patch) | |
tree | d5197a012777dad7ae9e267135f108922bbc01f2 /src/journal/journald-server.c | |
parent | e95c98378ac2d34df864de4a9b785fd17defb77b (diff) |
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.
Diffstat (limited to 'src/journal/journald-server.c')
-rw-r--r-- | src/journal/journald-server.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c index b49359e96d..12735c4b81 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; |