[libvirt] [PATCH v2 7/8] blockcopy: add qemu implementation of new API

Eric Blake eblake at redhat.com
Wed Aug 27 04:57:56 UTC 2014


On 08/26/2014 09:46 AM, Peter Krempa wrote:
> On 08/26/14 13:21, Eric Blake wrote:
>> The hard part of managing the disk copy is already coded; all
>> this had to do was convert the XML and virTypedParameters into
>> the internal representation.
>>
>> With this patch, all blockcopy operations that used the old
>> API should also work via the new API.  Additional extensions,
>> such as supporting the granularity tunable or a network rather
>> than file destination, will be added as later patches.
>>

>> +    ret = qemuDomainBlockCopyCommon(&vm, dom->conn, disk, dest,
>> +                                    bandwidth, flags);
> 
> I don't think you need to do the dance with passing vm as an pointer and
> having it returned. Insted you can unlock/free it in
> qemuDomainBlockCopyCommon.
> 
> This will also clean the messy part in 5/8.

But it was the fact that there was transfer semantics that confused me.
 qemuDomainBlockCopyCommon cannot return early if it MUST free vm on all
exit paths, and I found it easier to reason about the code if the
function that allocated vm also freed it.  I'll think about whether to
change anything for v3.

> 
>> +
>> + cleanup:
>> +    virStorageSourceFree(dest);
>> +    if (vm)
>> +        virObjectUnlock(vm);
>> +    return ret;
>> +}
>> +
>> +
>>  static int
>>
> 
> ACK
> 

-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 539 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140826/5510d745/attachment-0001.sig>


More information about the libvir-list mailing list