]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
bootspec: don't log in boot_entries_load_config_auto() about no ESP
authorLennart Poettering <lennart@poettering.net>
Tue, 12 Mar 2019 19:13:29 +0000 (20:13 +0100)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Wed, 13 Mar 2019 16:06:24 +0000 (17:06 +0100)
Let's do it in the caller instead. That way, logind can stay silent
about it.

Fixes: #11950
src/login/logind-dbus.c
src/shared/bootspec.c
src/systemctl/systemctl.c

index a3b8f43346caced9dbe6e1b3afdb84ca3c9befc0..1207193b7fac245cf1314a645942b748212ebc94 100644 (file)
@@ -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);
index f2b919b6bb34e13d7f7a94ce5e06939257e74860..59930464bc080ade3ab51a2f3fd789b9dff24c7d 100644 (file)
@@ -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);
index 7f6196328b12db90ce345a533f209468564fb0ab..23818a0db12918aa1c3aff37b367fe5a0e616530 100644 (file)
@@ -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;