On 08/31/14 06:02, Eric Blake wrote:
> To date, anyone performing a block copy and pivot ends up with
> the destination being treated as <disk type='file'>.  While this
> works for data access for a block device, it has at least one
> noticeable shortcoming: virDomainGetBlockInfo() reports allocation
> differently for block devices visited as files (the size of the
> device) than for block devices visited as <disk type='block'>
> (the maximum sector used, as reported by qemu); and this difference
> is significant when trying to manage qcow2 format on block devices
> that can be grown as needed.
> 
> Of course, the more powerful virDomainBlockCopy() API can already
> express the ability to set the <disk> type.  But a new API can't
> be backported, while a new flag to an existing API can; and it is
> also rather inconvenient to have to resort to the full power of
> generating XML when just adding a flag to the older call will do
> the trick.  So this patch enhances blockcopy to let the user flag
> when the resulting XML after the copy must list the device as
> type='block'.
> 
> * include/libvirt/libvirt.h.in (VIR_DOMAIN_BLOCK_REBASE_COPY_DEV):
> New flag.
> * src/libvirt.c (virDomainBlockRebase): Document it.
> * tools/virsh-domain.c (opts_block_copy, blockJobImpl): Add
> --blockdev option.
> * tools/virsh.pod (blockcopy): Document it.
> * src/qemu/qemu_driver.c (qemuDomainBlockRebase): Allow new flag.
> (qemuDomainBlockCopy): Remember the flag, and make sure it is only
> used on actual block devices.
> * tests/qemuxml2argvdata/qemuxml2argv-disk-mirror.xml: Test it.
> 
> Signed-off-by: Eric Blake <ebl...@redhat.com>
> ---
>  include/libvirt/libvirt.h.in                       |  2 ++
>  src/libvirt.c                                      |  8 +++--
>  src/qemu/qemu_driver.c                             | 36 
> ++++++++++++++--------
>  .../qemuxml2argvdata/qemuxml2argv-disk-mirror.xml  |  4 +--
>  tools/virsh-domain.c                               |  6 ++++
>  tools/virsh.pod                                    |  7 +++--
>  6 files changed, 45 insertions(+), 18 deletions(-)
> 

ACK

Peter


Attachment: signature.asc
Description: OpenPGP digital signature

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to