From: Mike Yuan Date: Sun, 31 Mar 2024 12:17:14 +0000 (+0800) Subject: hibernate-util: make clear_efi_hibernate_location_and_warn return 1 if X-Git-Tag: v256-rc1~324^2~6 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=fbc88824b6379a902e611c6d5820d3aa0bd85136;p=thirdparty%2Fsystemd.git hibernate-util: make clear_efi_hibernate_location_and_warn return 1 if actually cleared the variable --- diff --git a/src/hibernate-resume/hibernate-resume.c b/src/hibernate-resume/hibernate-resume.c index 3f45836d591..519aefe29fa 100644 --- a/src/hibernate-resume/hibernate-resume.c +++ b/src/hibernate-resume/hibernate-resume.c @@ -60,7 +60,7 @@ static int run(int argc, char *argv[]) { return r; if (arg_info.efi) - clear_efi_hibernate_location_and_warn(); + (void) clear_efi_hibernate_location_and_warn(); } if (stat(arg_info.device, &st) < 0) diff --git a/src/shared/hibernate-util.c b/src/shared/hibernate-util.c index 3547476c851..2e3f7cfb844 100644 --- a/src/shared/hibernate-util.c +++ b/src/shared/hibernate-util.c @@ -513,13 +513,17 @@ int write_resume_config(dev_t devno, uint64_t offset, const char *device) { return 0; } -void clear_efi_hibernate_location_and_warn(void) { +int clear_efi_hibernate_location_and_warn(void) { int r; if (!is_efi_boot()) - return; + return 0; r = efi_set_variable(EFI_SYSTEMD_VARIABLE(HibernateLocation), NULL, 0); + if (r == -ENOENT) + return 0; if (r < 0) - log_warning_errno(r, "Failed to clear EFI variable HibernateLocation, ignoring: %m"); + return log_warning_errno(r, "Failed to clear EFI variable HibernateLocation: %m"); + + return 1; } diff --git a/src/shared/hibernate-util.h b/src/shared/hibernate-util.h index 1064d2b4dd4..394d0b41766 100644 --- a/src/shared/hibernate-util.h +++ b/src/shared/hibernate-util.h @@ -22,7 +22,7 @@ int hibernation_is_safe(void); int write_resume_config(dev_t devno, uint64_t offset, const char *device); -void clear_efi_hibernate_location_and_warn(void); +int clear_efi_hibernate_location_and_warn(void); /* Only for test-fiemap */ int read_fiemap(int fd, struct fiemap **ret); diff --git a/src/sleep/sleep.c b/src/sleep/sleep.c index 693484e8865..c96207428dc 100644 --- a/src/sleep/sleep.c +++ b/src/sleep/sleep.c @@ -308,7 +308,7 @@ static int execute( fail: if (SLEEP_OPERATION_IS_HIBERNATION(operation)) - clear_efi_hibernate_location_and_warn(); + (void) clear_efi_hibernate_location_and_warn(); return r; }