[libvirt] [PATCH v2 2/4] libxlDomainSetMemoryFlags : reuse virDomainLiveConfigHelperMethod

John Ferlan jferlan at redhat.com
Tue Mar 1 15:46:43 UTC 2016


$subj:

Use the "libxl: ..." prefix please

That way someone filtering on libxl patches may pick up on this. I can
fix this for this one...

On 02/24/2016 03:38 AM, Nikolay Shirokovskiy wrote:
> Flag expansion is the same as in virDomainObjUpdateModificationImpact
> which virDomainLiveConfigHelperMethod calls internally. The difference
> is merely in implementation. Original code don't use mask
> and handle case when VIR_DOMAIN_MEM_MAXIMUM is set explicitly.
> 
> Other parts are no different.
> 
> Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy at virtuozzo.com>
> ---
>  src/libxl/libxl_driver.c | 34 ++--------------------------------
>  1 file changed, 2 insertions(+), 32 deletions(-)
> 

I think what's being done is OK, but just to be save, I've CC'd Jim
Fehlig who typically reviews libxl patches just to be sure before I push
the change.

John

> diff --git a/src/libxl/libxl_driver.c b/src/libxl/libxl_driver.c
> index 404016e..06feea5 100644
> --- a/src/libxl/libxl_driver.c
> +++ b/src/libxl/libxl_driver.c
> @@ -1444,7 +1444,6 @@ libxlDomainSetMemoryFlags(virDomainPtr dom, unsigned long newmem,
>      libxlDriverConfigPtr cfg = libxlDriverConfigGet(driver);
>      virDomainObjPtr vm;
>      virDomainDefPtr persistentDef = NULL;
> -    bool isActive;
>      int ret = -1;
>  
>      virCheckFlags(VIR_DOMAIN_MEM_LIVE |
> @@ -1460,38 +1459,9 @@ libxlDomainSetMemoryFlags(virDomainPtr dom, unsigned long newmem,
>      if (libxlDomainObjBeginJob(driver, vm, LIBXL_JOB_MODIFY) < 0)
>          goto cleanup;
>  
> -    isActive = virDomainObjIsActive(vm);
> -
> -    if (flags == VIR_DOMAIN_MEM_CURRENT) {
> -        if (isActive)
> -            flags = VIR_DOMAIN_MEM_LIVE;
> -        else
> -            flags = VIR_DOMAIN_MEM_CONFIG;
> -    }
> -    if (flags == VIR_DOMAIN_MEM_MAXIMUM) {
> -        if (isActive)
> -            flags = VIR_DOMAIN_MEM_LIVE | VIR_DOMAIN_MEM_MAXIMUM;
> -        else
> -            flags = VIR_DOMAIN_MEM_CONFIG | VIR_DOMAIN_MEM_MAXIMUM;
> -    }
> -
> -    if (!isActive && (flags & VIR_DOMAIN_MEM_LIVE)) {
> -        virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> -                       _("cannot set memory on an inactive domain"));
> +    if (virDomainLiveConfigHelperMethod(cfg->caps, driver->xmlopt, vm, &flags,
> +                                        &persistentDef) < 0)
>          goto endjob;
> -    }
> -
> -    if (flags & VIR_DOMAIN_MEM_CONFIG) {
> -        if (!vm->persistent) {
> -            virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> -                           _("cannot change persistent config of a transient domain"));
> -            goto endjob;
> -        }
> -        if (!(persistentDef = virDomainObjGetPersistentDef(cfg->caps,
> -                                                           driver->xmlopt,
> -                                                           vm)))
> -            goto endjob;
> -    }
>  
>      if (flags & VIR_DOMAIN_MEM_MAXIMUM) {
>          /* resize the maximum memory */
> 




More information about the libvir-list mailing list