[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