summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-10-26 00:14:30 -0400
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2014-10-26 00:35:23 -0400
commitcaa2f4c0c9613b2e02aafa308c8fb092576014a9 (patch)
treed5197a012777dad7ae9e267135f108922bbc01f2
parente95c98378ac2d34df864de4a9b785fd17defb77b (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.
-rw-r--r--src/journal/journald-server.c9
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;