[libvirt] [PATCH] qemu: fix cannot get a hot-unplug disk blockdevio settings

Luyao Huang lhuang at redhat.com
Sat Nov 15 05:44:54 UTC 2014


On 11/15/2014 06:29 AM, John Ferlan wrote:
>
> On 11/13/2014 10:21 PM, Luyao Huang wrote:
>
> It would help to put the bz link in here:
>
> https://bugzilla.redhat.com/show_bug.cgi?id=1164080
>
>> When we try to get a hot-unplug disk blkdevio settings via
>> qemuDomainGetBlockIoTune, libvirt will output a cannot find
>> device error.Move the check after confirm vm is running.
>>
> "Technically" speaking you're not moving the check after confirming the
> vm is running because it is already after that via the call to
> virDomainLiveConfigHelperMethod which calls virDomainObjIsActive before
> determining how to set *flags.
>
> You're moving the check to only when it's desired to get something from
> the active vm (e.g., when the vm is running or the --live flag was
> used). Since the 'device' is only ever used within that call - it's
> safe/right to move it.
Thanks for the clearly description, i will try to give a more clearly
description next time :)
>
> I updated the bug report with some other details regarding expectations.
>
Thanks your help in advance.
>> Signed-off-by: Luyao Huang <lhuang at redhat.com>
>> ---
>>   src/qemu/qemu_driver.c | 9 ++++-----
>>   1 file changed, 4 insertions(+), 5 deletions(-)
>>
>> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
>> index 411179d..c717c76 100644
>> --- a/src/qemu/qemu_driver.c
>> +++ b/src/qemu/qemu_driver.c
>> @@ -17031,12 +17031,11 @@ qemuDomainGetBlockIoTune(virDomainPtr dom,
>>           goto endjob;
>>       }
>>
>> -    device = qemuDiskPathToAlias(vm, disk, NULL);
>> -    if (!device) {
>> -        goto endjob;
>> -    }
>> -
>>       if (flags & VIR_DOMAIN_AFFECT_LIVE) {
>> +        device = qemuDiskPathToAlias(vm, disk, NULL);
>> +        if (!device) {
>> +            goto endjob;
>> +        }
> mkletzan's recent changes remove the unnecessary brackets.
>
> I'll clean this up and push shortly
>
> John
Thanks for push the patch.
>>           qemuDomainObjEnterMonitor(driver, vm);
>>           ret = qemuMonitorGetBlockIoThrottle(priv->mon, device, &reply, supportMaxOptions);
>>           qemuDomainObjExitMonitor(driver, vm);
>>




More information about the libvir-list mailing list