[libvirt] [PATCH v2 2/4] libxlDomainSetMemoryFlags : reuse virDomainLiveConfigHelperMethod
Jim Fehlig
jfehlig at suse.com
Thu Mar 3 21:00:58 UTC 2016
On 03/01/2016 08:46 AM, John Ferlan wrote:
> $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.
The change looks good to me. In fact, it seems to be an improvement over the
existing logic. ACK.
Regards,
Jim
>
> 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