[libvirt PATCH 0/6] [RFC] qemu: implement support for pulling into non-active layers

Pavel Mores pmores at redhat.com
Wed Mar 4 10:12:34 UTC 2020


QEMU's block-stream command supports pulling ("streaming" in QMP lingo) into
arbitrary layer, however libvirt can only pull into an active layer.  This
series is a proof-of-concept work to extend libvirt's pull to support pulling
into non-active layers as well.

While this doesn't seem to be a much demanded feature by itself, it can be seen
as a prerequisite to implementing full support for external snapshots in
snapshot-delete(*) as that appears to be implementable in terms of a
full-featured pull.

As stated above, this is a proof-of-concept work so admittedly not much effort
went into fully polishing the series.  The expectation is that the series will
have to change heavily anyway before it's good enough to be pushed.

(*) https://bugzilla.redhat.com/show_bug.cgi?id=1519001

Pavel Mores (6):
  qemu: block: add 'top' parameter to qemuDomainBlockPullCommon()
  qemu: block: pull job extended with 'top' parameter
  qemu: block: blockpull param 'top' support in virsh proper
  qemu: block: blockpull param 'top' support in driver and RPC
  qemu: block: 'top' support in construction of QMP block-stream
  qemu: block: extend pull job completion with 'top' handling

 include/libvirt/libvirt-domain.h |  4 ++--
 src/driver-hypervisor.h          |  1 +
 src/libvirt-domain.c             |  7 ++++---
 src/qemu/qemu_blockjob.c         | 35 ++++++++++++++++++++++++++++----
 src/qemu/qemu_blockjob.h         |  2 ++
 src/qemu/qemu_driver.c           | 33 +++++++++++++++++++++++-------
 src/remote/remote_protocol.x     |  1 +
 src/remote_protocol-structs      |  1 +
 tools/virsh-domain.c             | 14 ++++++++++---
 9 files changed, 79 insertions(+), 19 deletions(-)

-- 
2.24.1




More information about the libvir-list mailing list