[libvirt] [PATCH v6 21/23] lxc, libxl: save domain status after reconnect

Laine Stump laine at laine.org
Fri Jun 7 11:48:51 UTC 2019


On 5/23/19 11:33 AM, Daniel P. Berrangé wrote:
> The various steps involved in reconnecting to a domain may cause updates
> to the virDomainObj struct that need to be reflected in the saved status
> file.
>
> Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>


Reviewed-by: Laine Stump <laine at laine.org>


> ---
>   src/libxl/libxl_driver.c | 3 +++
>   src/lxc/lxc_process.c    | 5 +++++
>   2 files changed, 8 insertions(+)
>
> diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
> index e2819eb0cc..2adb604f0f 100644
> --- a/src/libxl/libxl_driver.c
> +++ b/src/libxl/libxl_driver.c
> @@ -454,6 +454,9 @@ libxlReconnectDomain(virDomainObjPtr vm,
>   
>       libxlReconnectNotifyNets(vm->def);
>   
> +    if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, cfg->caps) < 0)
> +        VIR_WARN("Cannot update XML for running Xen guest %s", vm->def->name);
> +
>       /* now that we know it's reconnected call the hook if present */
>       if (virHookPresent(VIR_HOOK_DRIVER_LIBXL) &&
>           STRNEQ("Domain-0", vm->def->name)) {
> diff --git a/src/lxc/lxc_process.c b/src/lxc/lxc_process.c
> index b59cbbaba5..714eef20c8 100644
> --- a/src/lxc/lxc_process.c
> +++ b/src/lxc/lxc_process.c
> @@ -1680,6 +1680,7 @@ virLXCProcessReconnectDomain(virDomainObjPtr vm,
>   {
>       virLXCDriverPtr driver = opaque;
>       virLXCDomainObjPrivatePtr priv;
> +    virLXCDriverConfigPtr cfg = virLXCDriverGetConfig(driver);
>       int ret = -1;
>   
>       virObjectLock(vm);
> @@ -1722,6 +1723,9 @@ virLXCProcessReconnectDomain(virDomainObjPtr vm,
>   
>           virLXCProcessReconnectNotifyNets(vm->def);
>   
> +        if (virDomainSaveStatus(driver->xmlopt, cfg->stateDir, vm, driver->caps) < 0)
> +            VIR_WARN("Cannot update XML for running LXC guest %s", vm->def->name);
> +
>           /* now that we know it's reconnected call the hook if present */
>           if (virHookPresent(VIR_HOOK_DRIVER_LXC)) {
>               char *xml = virDomainDefFormat(vm->def, driver->caps, 0);
> @@ -1742,6 +1746,7 @@ virLXCProcessReconnectDomain(virDomainObjPtr vm,
>   
>       ret = 0;
>    cleanup:
> +    virObjectUnref(cfg);
>       virObjectUnlock(vm);
>       return ret;
>   





More information about the libvir-list mailing list