From: Lennart Poettering Date: Wed, 21 Feb 2018 23:31:36 +0000 (+0100) Subject: log: only open kmsg on fallback if we actually want to use it X-Git-Tag: v238~74^2~3 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=e38b8a407aef9814627207aa5d9a648ab9682a32;p=thirdparty%2Fsystemd.git log: only open kmsg on fallback if we actually want to use it 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... --- diff --git a/src/basic/log.c b/src/basic/log.c index b3751299d06..88aea4e1da8 100644 --- a/src/basic/log.c +++ b/src/basic/log.c @@ -613,22 +613,16 @@ 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(); } if (IN_SET(log_target, LOG_TARGET_SYSLOG_OR_KMSG, 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 && @@ -637,6 +631,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();