mirror of
https://github.com/systemd/systemd.git
synced 2024-12-26 03:22:00 +03:00
systemctl: fix logind bus call error handling in halt_main()
Handle -EOPNOTSUPP and -EINPROGRESS like in start_special().
This commit is contained in:
parent
4c315c2c7c
commit
a9085ea356
@ -3048,8 +3048,12 @@ static int start_special(sd_bus *bus, char **args) {
|
||||
ACTION_HIBERNATE,
|
||||
ACTION_HYBRID_SLEEP)) {
|
||||
r = reboot_with_logind(bus, a);
|
||||
if (r >= 0 || IN_SET(r, -EOPNOTSUPP, -EINPROGRESS))
|
||||
if (r >= 0)
|
||||
return r;
|
||||
if (IN_SET(r, -EOPNOTSUPP, -EINPROGRESS))
|
||||
/* requested operation is not supported or already in progress */
|
||||
return r;
|
||||
/* on all other errors, try low-level operation */
|
||||
}
|
||||
|
||||
r = start_unit(bus, args);
|
||||
@ -7378,6 +7382,10 @@ static int halt_main(sd_bus *bus) {
|
||||
r = reboot_with_logind(bus, arg_action);
|
||||
if (r >= 0)
|
||||
return r;
|
||||
if (IN_SET(r, -EOPNOTSUPP, -EINPROGRESS))
|
||||
/* requested operation is not supported or already in progress */
|
||||
return r;
|
||||
/* on all other errors, try low-level operation */
|
||||
}
|
||||
|
||||
log_error("Must be root.");
|
||||
|
Loading…
Reference in New Issue
Block a user