From: Peter Krempa Date: Fri, 27 Jun 2025 13:22:22 +0000 (+0200) Subject: hypervisor: domain: Extract logic for auto shutdown to virDomainDriverAutoShutdownActive X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=bb51963bb173b28dacb6a1374712b1344e9a61c2;p=thirdparty%2Flibvirt.git hypervisor: domain: Extract logic for auto shutdown to virDomainDriverAutoShutdownActive Extract the checker that determines whether the daemon auto shutdown functionality is active to a separate helper 'virDomainDriverAutoShutdownActive'. Signed-off-by: Peter Krempa Reviewed-by: Pavel Hrdina --- diff --git a/src/hypervisor/domain_driver.c b/src/hypervisor/domain_driver.c index 62bbe176ae..353b8875ec 100644 --- a/src/hypervisor/domain_driver.c +++ b/src/hypervisor/domain_driver.c @@ -729,6 +729,15 @@ virDomainDriverAutoStart(virDomainObjList *domains, } +bool +virDomainDriverAutoShutdownActive(virDomainDriverAutoShutdownConfig *cfg) +{ + return cfg->trySave != VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_NONE || + cfg->tryShutdown != VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_NONE || + cfg->poweroff != VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_NONE; +} + + void virDomainDriverAutoShutdown(virDomainDriverAutoShutdownConfig *cfg) { @@ -773,9 +782,7 @@ virDomainDriverAutoShutdown(virDomainDriverAutoShutdownConfig *cfg) } /* Short-circuit if all actions are disabled */ - if (cfg->trySave == VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_NONE && - cfg->tryShutdown == VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_NONE && - cfg->poweroff == VIR_DOMAIN_DRIVER_AUTO_SHUTDOWN_SCOPE_NONE) + if (!virDomainDriverAutoShutdownActive(cfg)) return; if (!(conn = virConnectOpen(cfg->uri))) diff --git a/src/hypervisor/domain_driver.h b/src/hypervisor/domain_driver.h index d90466b942..af1c4eaed6 100644 --- a/src/hypervisor/domain_driver.h +++ b/src/hypervisor/domain_driver.h @@ -116,4 +116,5 @@ typedef struct _virDomainDriverAutoShutdownConfig { bool autoRestore; } virDomainDriverAutoShutdownConfig; +bool virDomainDriverAutoShutdownActive(virDomainDriverAutoShutdownConfig *cfg); void virDomainDriverAutoShutdown(virDomainDriverAutoShutdownConfig *cfg); diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms index 8f1489ecc8..1b9be478e4 100644 --- a/src/libvirt_private.syms +++ b/src/libvirt_private.syms @@ -1658,6 +1658,7 @@ virDomainCgroupSetupVcpuBW; # hypervisor/domain_driver.h virDomainDriverAddIOThreadCheck; virDomainDriverAutoShutdown; +virDomainDriverAutoShutdownActive; virDomainDriverAutoShutdownScopeTypeFromString; virDomainDriverAutoShutdownScopeTypeToString; virDomainDriverAutoStart;