hibernate-util: make clear_efi_hibernate_location_and_warn return 1 if

actually cleared the variable
This commit is contained in:
Mike Yuan 2024-03-31 20:17:14 +08:00
parent 2dcc499bb8
commit fbc88824b6
No known key found for this signature in database
GPG key ID: 417471C0A40F58B3
4 changed files with 10 additions and 6 deletions

View file

@ -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)

View file

@ -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;
}

View file

@ -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);

View file

@ -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;
}