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-19 05:27:50 +0900 |
commit | af1bed8e83c3d380d1eb0b9147684b76d1ee4df0 (patch) | |
tree | 5fe2b205ec1f7e19ef55eb39532497326b8aab70 /src/boot/bootctl.c | |
parent | b9e7f22c2d80930cad36ae53e66e42a2996dca4a (diff) | |
download | systemd-af1bed8e83c3d380d1eb0b9147684b76d1ee4df0.tar.gz |
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 'src/boot/bootctl.c')
-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)) { |