[systemd-commits] src/journal

Zbigniew Jędrzejewski-Szmek zbyszek at kemper.freedesktop.org
Sat Oct 25 21:35:44 PDT 2014


 src/journal/journald-server.c |    9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

New commits:
commit caa2f4c0c9613b2e02aafa308c8fb092576014a9
Author: Zbigniew Jędrzejewski-Szmek <zbyszek at in.waw.pl>
Date:   Sun Oct 26 00:14:30 2014 -0400

    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.

diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c
index b49359e..12735c4 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;
 



More information about the systemd-commits mailing list