bootctl: minor tweaks (#41695)

This is split out of #41543, but makes sense on its own.
This commit is contained in:
Lennart Poettering
2026-04-18 08:41:46 +02:00
committed by GitHub
5 changed files with 13 additions and 14 deletions
+1 -5
View File
@@ -98,8 +98,6 @@ int verb_cleanup(int argc, char *argv[], uintptr_t _data, void *userdata) {
/* ret_psize= */ NULL,
/* ret_uuid= */ NULL,
&esp_devid);
if (r == -EACCES) /* We really need the ESP path for this call, hence also log about access errors */
return log_error_errno(r, "Failed to determine ESP location: %m");
if (r < 0)
return r;
@@ -107,13 +105,11 @@ int verb_cleanup(int argc, char *argv[], uintptr_t _data, void *userdata) {
/* unprivileged_mode= */ false,
/* ret_uuid= */ NULL,
&xbootldr_devid);
if (r == -EACCES)
return log_error_errno(r, "Failed to determine XBOOTLDR partition: %m");
if (r < 0)
return r;
_cleanup_(boot_config_free) BootConfig config = BOOT_CONFIG_NULL;
r = boot_config_load_and_select(&config, arg_esp_path, esp_devid, arg_xbootldr_path, xbootldr_devid);
r = boot_config_load_and_select(&config, arg_root, arg_esp_path, esp_devid, arg_xbootldr_path, xbootldr_devid);
if (r < 0)
return r;
+7 -5
View File
@@ -615,9 +615,11 @@ int verb_status(int argc, char *argv[], uintptr_t _data, void *userdata) {
if (arg_esp_path || arg_xbootldr_path) {
_cleanup_(boot_config_free) BootConfig config = BOOT_CONFIG_NULL;
k = boot_config_load_and_select(&config,
arg_esp_path, esp_devid,
arg_xbootldr_path, xbootldr_devid);
k = boot_config_load_and_select(
&config,
arg_root,
arg_esp_path, esp_devid,
arg_xbootldr_path, xbootldr_devid);
RET_GATHER(r, k);
if (k >= 0)
@@ -654,7 +656,7 @@ int verb_list(int argc, char *argv[], uintptr_t _data, void *userdata) {
if (r < 0)
return r;
r = boot_config_load_and_select(&config, arg_esp_path, esp_devid, arg_xbootldr_path, xbootldr_devid);
r = boot_config_load_and_select(&config, arg_root, arg_esp_path, esp_devid, arg_xbootldr_path, xbootldr_devid);
if (r < 0)
return r;
@@ -700,7 +702,7 @@ int vl_method_list_boot_entries(sd_varlink *link, sd_json_variant *parameters, s
if (r < 0)
return r;
r = boot_config_load_and_select(&config, arg_esp_path, esp_devid, arg_xbootldr_path, xbootldr_devid);
r = boot_config_load_and_select(&config, arg_root, arg_esp_path, esp_devid, arg_xbootldr_path, xbootldr_devid);
if (r < 0)
return r;
+1
View File
@@ -227,6 +227,7 @@ int verb_unlink(int argc, char *argv[], uintptr_t _data, void *userdata) {
_cleanup_(boot_config_free) BootConfig config = BOOT_CONFIG_NULL;
r = boot_config_load_and_select(
&config,
arg_root,
arg_esp_path,
esp_devid,
arg_xbootldr_path,
+3 -3
View File
@@ -1,6 +1,5 @@
/* SPDX-License-Identifier: LGPL-2.1-or-later */
#include "bootctl.h"
#include "bootspec-util.h"
#include "devnum-util.h"
#include "efi-loader.h"
@@ -10,6 +9,7 @@
int boot_config_load_and_select(
BootConfig *config,
const char *root,
const char *esp_path,
dev_t esp_devid,
const char *xbootldr_path,
@@ -25,7 +25,7 @@ int boot_config_load_and_select(
if (r < 0)
return r;
if (!arg_root) {
if (!root) {
_cleanup_strv_free_ char **efi_entries = NULL;
r = efi_loader_get_entries(&efi_entries);
@@ -37,5 +37,5 @@ int boot_config_load_and_select(
(void) boot_config_augment_from_loader(config, efi_entries, /* auto_only= */ false);
}
return boot_config_select_special_entries(config, /* skip_efivars= */ !!arg_root);
return boot_config_select_special_entries(config, /* skip_efivars= */ !!root);
}
+1 -1
View File
@@ -3,4 +3,4 @@
#include "bootspec.h"
int boot_config_load_and_select(BootConfig *config, const char *esp_path, dev_t esp_devid, const char *xbootldr_path, dev_t xbootldr_devid);
int boot_config_load_and_select(BootConfig *config, const char *root, const char *esp_path, dev_t esp_devid, const char *xbootldr_path, dev_t xbootldr_devid);