qga: Fix suspend on Linux guests without systemd
Allow the Linux guest agent to attempt each of the suspend methods (systemctl, pm-* and writing to /sys) in turn. Prior to this guests without systemd failed to suspend due to `guest_suspend` returning early regardless of the return value of `systemd_supports_mode`. Signed-off-by: Mark Somerville <mark@qpok.net> Reviewed-by: Konstantin Kostiuk <kkostiuk@redhat.com> Signed-off-by: Konstantin Kostiuk <kkostiuk@redhat.com>
This commit is contained in:
parent
8cc28cb16e
commit
86dcb6ab9b
@ -1922,10 +1922,10 @@ static void guest_suspend(SuspendMode mode, Error **errp)
|
|||||||
if (systemd_supports_mode(mode, &local_err)) {
|
if (systemd_supports_mode(mode, &local_err)) {
|
||||||
mode_supported = true;
|
mode_supported = true;
|
||||||
systemd_suspend(mode, &local_err);
|
systemd_suspend(mode, &local_err);
|
||||||
}
|
|
||||||
|
|
||||||
if (!local_err) {
|
if (!local_err) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
error_free(local_err);
|
error_free(local_err);
|
||||||
@ -1934,10 +1934,10 @@ static void guest_suspend(SuspendMode mode, Error **errp)
|
|||||||
if (pmutils_supports_mode(mode, &local_err)) {
|
if (pmutils_supports_mode(mode, &local_err)) {
|
||||||
mode_supported = true;
|
mode_supported = true;
|
||||||
pmutils_suspend(mode, &local_err);
|
pmutils_suspend(mode, &local_err);
|
||||||
}
|
|
||||||
|
|
||||||
if (!local_err) {
|
if (!local_err) {
|
||||||
return;
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
error_free(local_err);
|
error_free(local_err);
|
||||||
|
Loading…
Reference in New Issue
Block a user