[libvirt] [PATCH 07/21] qemu_hotplug: refactor qemuDomainDetachDiskLive and qemuDomainDetachDiskDevice

Laine Stump laine at laine.org
Fri Mar 22 13:23:48 UTC 2019


On 3/22/19 5:07 AM, Peter Krempa wrote:
> On Thu, Mar 21, 2019 at 18:28:47 -0400, Laine Stump wrote:
>> qemuDomainDetachDiskDevice() is only called from one place. Moving the
>> contents of the function to that place makes
>> qemuDomainDetachDiskLive() more similar to the other Detach functions
>> called by the toplevel qemuDomainDetachDevice().
>>
>> The goal is to make each of the device-type-specific functions do this:
>>
>>    1) find the exact device
>>    2) do any device-specific validation
>>    3) do general validation
>>    4) do device-specific shutdown (only needed for net devices)
>>    5) do the common block of code to send device_del to qemu, then
>>       optionally wait for a corresponding DEVICE_DELETED event from
>>       qemu.
>>
>> with the final aim being that only items 1 & 2 will remain in each
>> device-type-specific function, while 3 & 5 (which are the same for
>> almost every type) will be de-duplicated and moved to the toplevel
>> function that calls all of these (qemuDomainDetachDeviceLive(), which
>> will also contain a callout to the one instance of (4) (netdev).
> I'm not sure whether this is worth setting into ston^w commit message.


Yeah, that should go below the --, but I can never remember to do that 
when sending the patch, so I just include the comments in the commit 
message and remove it later. (Is there a way to add "meta comments"?)

>
>> Signed-off-by: Laine Stump <laine at laine.org>
>> ---
>>   src/qemu/qemu_hotplug.c | 96 ++++++++++++++++++-----------------------
>>   1 file changed, 43 insertions(+), 53 deletions(-)
>>
>> diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
>> index af99f3bf4c..820929b109 100644
>> --- a/src/qemu/qemu_hotplug.c
>> +++ b/src/qemu/qemu_hotplug.c
> [...]
>
>> @@ -5374,16 +5334,46 @@ qemuDomainDetachDeviceDiskLive(virQEMUDriverPtr driver,
>>       case VIR_DOMAIN_DISK_DEVICE_FLOPPY:
>>           virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
>>                          _("disk device type '%s' cannot be detached"),
>> -                       virDomainDiskDeviceTypeToString(disk->device));
>> -        break;
>> +                       virDomainDiskDeviceTypeToString(detach->device));
>> +        return -1;
>>   
>>       case VIR_DOMAIN_DISK_DEVICE_LAST:
>>       default:
>> -        virReportEnumRangeError(virDomainDiskDevice, disk->device);
>> +        virReportEnumRangeError(virDomainDiskDevice, detach->device);
>>           break;
> Missing conversion to 'return -1;'


Ooh!! Good eye!!


>
> ACK with the above fixed.





More information about the libvir-list mailing list