diff options
author | Lennart Poettering <lennart@poettering.net> | 2022-11-18 18:05:53 +0100 |
---|---|---|
committer | Yu Watanabe <watanabe.yu+github@gmail.com> | 2022-11-18 21:27:50 +0100 |
commit | af1bed8e83c3d380d1eb0b9147684b76d1ee4df0 (patch) | |
tree | 5fe2b205ec1f7e19ef55eb39532497326b8aab70 /src/boot/bootctl.c | |
parent | nspawn: allow sched_rr_get_interval_time64 through seccomp filter (diff) | |
download | systemd-af1bed8e83c3d380d1eb0b9147684b76d1ee4df0.tar.xz systemd-af1bed8e83c3d380d1eb0b9147684b76d1ee4df0.zip |
bootctl: rework how we handle referenced but absent EFI boot entries
Follow-up for #25368.
Let's consider ENOENT an expected error, and just debug log about it
(though, let's suffix it with `, ignoring.`). All other errors will log
loudly, as they are unexpected errors.
Diffstat (limited to '')
-rw-r--r-- | src/boot/bootctl.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/boot/bootctl.c b/src/boot/bootctl.c index afda914d52..2565f54586 100644 --- a/src/boot/bootctl.c +++ b/src/boot/bootctl.c @@ -585,8 +585,12 @@ static int print_efi_option(uint16_t id, int *n_printed, bool in_order) { assert(n_printed); r = efi_get_boot_option(id, &title, &partition, &path, &active); + if (r == -ENOENT) { + log_debug_errno(r, "Boot option 0x%04X referenced but missing, ignoring: %m", id); + return 0; + } if (r < 0) - return log_debug_errno(r, "Failed to read boot option 0x%04X: %m", id); + return log_error_errno(r, "Failed to read boot option 0x%04X: %m", id); /* print only configured entries with partition information */ if (!path || sd_id128_is_null(partition)) { |