From: Lennart Poettering Date: Tue, 12 Mar 2019 19:13:29 +0000 (+0100) Subject: bootspec: don't log in boot_entries_load_config_auto() about no ESP X-Git-Tag: v242-rc1~143 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=cc5957dca055bfdc6df24af47f6687d1ba1a3d7a;p=thirdparty%2Fsystemd.git bootspec: don't log in boot_entries_load_config_auto() about no ESP Let's do it in the caller instead. That way, logind can stay silent about it. Fixes: #11950 --- diff --git a/src/login/logind-dbus.c b/src/login/logind-dbus.c index a3b8f43346c..1207193b7fa 100644 --- a/src/login/logind-dbus.c +++ b/src/login/logind-dbus.c @@ -2798,7 +2798,7 @@ static int boot_loader_entry_exists(const char *id) { assert(id); r = boot_entries_load_config_auto(NULL, NULL, &config); - if (r < 0) + if (r < 0 && r != -ENOKEY) /* don't complain if no GPT is found, hence skip ENOKEY */ return r; (void) boot_entries_augment_from_loader(&config, true); @@ -2953,7 +2953,7 @@ static int property_get_boot_loader_entries( assert(userdata); r = boot_entries_load_config_auto(NULL, NULL, &config); - if (r < 0) + if (r < 0 && r != -ENOKEY) /* don't complain if there's no GPT found */ return r; (void) boot_entries_augment_from_loader(&config, true); diff --git a/src/shared/bootspec.c b/src/shared/bootspec.c index f2b919b6bb3..59930464bc0 100644 --- a/src/shared/bootspec.c +++ b/src/shared/bootspec.c @@ -712,9 +712,7 @@ int boot_entries_load_config_auto( } r = find_esp_and_warn(override_esp_path, false, &esp_where, NULL, NULL, NULL, NULL); - if (r == -ENOKEY) /* find_esp_and_warn() doesn't warn about this case */ - return log_error_errno(r, "Cannot find the ESP partition mount point."); - if (r < 0) /* But it logs about all these cases, hence don't log here again */ + if (r < 0) /* we don't log about ENOKEY here, but propagate it, leaving it to the caller to log */ return r; r = find_xbootldr_and_warn(override_xbootldr_path, false, &xbootldr_where, NULL); diff --git a/src/systemctl/systemctl.c b/src/systemctl/systemctl.c index 7f6196328b1..23818a0db12 100644 --- a/src/systemctl/systemctl.c +++ b/src/systemctl/systemctl.c @@ -3591,6 +3591,8 @@ static int load_kexec_kernel(void) { return log_error_errno(errno, KEXEC" is not available: %m"); r = boot_entries_load_config_auto(NULL, NULL, &config); + if (r == -ENOKEY) /* The call doesn't log about ENOKEY, let's do so here. */ + return log_error_errno(r, "Cannot find the ESP partition mount point."); if (r < 0) return r;