chiark / gitweb /
log: only open kmsg on fallback if we actually want to use it
authorLennart Poettering <lennart@poettering.net>
Wed, 21 Feb 2018 23:31:36 +0000 (00:31 +0100)
committerSven Eden <yamakuzure@gmx.net>
Wed, 30 May 2018 05:59:02 +0000 (07:59 +0200)
Previously, we'd try to open kmsg on failure of the journal/syslog even
if no automatic fallback to kmsg was requested — and we wouldn't even
use the open connection afterwards...

src/basic/log.c

index 3963e03719fad9b901aa7d736c122e7ab7bbace1..c0117f692442e4aaab5ad238c653a56b5025a687 100644 (file)
@@ -628,11 +628,8 @@ int log_dispatch_internal(
                                        LOG_TARGET_JOURNAL)) {
 
                         k = write_to_journal(level, error, file, line, func, object_field, object, extra_field, extra, buffer);
-                        if (k < 0) {
-                                if (k != -EAGAIN)
-                                        log_close_journal();
-                                log_open_kmsg();
-                        }
+                        if (k < 0 && k != -EAGAIN)
+                                log_close_journal();
                 }
 #endif // 0
 
@@ -640,11 +637,8 @@ int log_dispatch_internal(
                                        LOG_TARGET_SYSLOG)) {
 
                         k = write_to_syslog(level, error, file, line, func, buffer);
-                        if (k < 0) {
-                                if (k != -EAGAIN)
-                                        log_close_syslog();
-                                log_open_kmsg();
-                        }
+                        if (k < 0 && k != -EAGAIN)
+                                log_close_syslog();
                 }
 
                 if (k <= 0 &&
@@ -653,6 +647,9 @@ int log_dispatch_internal(
                                        LOG_TARGET_JOURNAL_OR_KMSG,
                                        LOG_TARGET_KMSG)) {
 
+                        if (k < 0)
+                                log_open_kmsg();
+
                         k = write_to_kmsg(level, error, file, line, func, buffer);
                         if (k < 0) {
                                 log_close_kmsg();