[libvirt PATCH 00/30] introduce external snapshot delete support

Pavel Hrdina phrdina at redhat.com
Thu Dec 8 13:30:36 UTC 2022


This implements virDomainSnapshotDelete API to support external
snapshots. The support doesn't include flags
VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN and
VIR_DOMAIN_SNAPSHOT_DELETE_CHILDREN_ONLY as it would add more complexity
and IMHO these flags should not existed at all.

Gitlab repo with the patches:
https://gitlab.com/phrdina/libvirt/-/commits/snapshot-delete-external

Pavel Hrdina (30):
  libvirt: introduce VIR_DOMAIN_JOB_OPERATION_SNAPSHOT_DELETE
  qemu_block: extract block commit code to separate function
  qemu_block: move qemuDomainBlockPivot out of qemu_driver
  qemu_block: add async domain job support to qemuBlockCommit
  qemu_block: add async domain job support to qemuBlockPivot
  qemu_monitor: introduce qemuMonitorJobFinalize
  qemu_monitor_json: allow configuring autofinalize for block commit
  qemu_block: allow configuring autofinalize for block commit
  qemu_block: introduce qemuBlockFinalize
  qemu_block: change qemuBlockCommit to return job pointer
  qemu_blockjob: process QEMU_MONITOR_JOB_STATUS_PENDING signal
  qemu_snapshot: refactor qemuSnapshotDelete
  qemu_snapshot: introduce qemuSnapshotDeleteSingle
  qemu_snapshot: introduce qemuSnapshotDeleteChildren
  qemu_snapshot: rework snapshot children deletion
  qemu_snapshot: move snapshot discard out of qemu_domain.c
  qemu_snapshot: move snapshot metadata reparent code
  qemu_snapshot: introduce qemuSnapshotDiscardMetadata
  qemu_snapshot: introduce qemuSnapshotDeleteValidate function
  qemu_snapshot: refactor validation of snapshot delete
  qemu_snapshot: error out when deleting internal snapshot on non-active
    disk
  qemu_snapshot: convert snapshot delete to async domain job
  qemu_snapshot: prepare data for external snapshot deletion
  qemu_snapshot: implement deletion of external snapshot
  qemu_snapshot: update metadata when deleting snapshots
  qemu_snapshot: when deleting snapshot invalidate parent snapshot
  qemu_process: abort snapshot delete when daemon starts
  qemu_snapshot: enable deletion of external snapshots
  api: document support for external snapshot deletion
  NEWS: document support for external snapshot deletion

 NEWS.rst                         |   6 +
 include/libvirt/libvirt-domain.h |   1 +
 src/conf/snapshot_conf.c         |   6 +
 src/conf/snapshot_conf.h         |   1 +
 src/libvirt-domain-snapshot.c    |   7 +
 src/qemu/qemu_backup.c           |   1 +
 src/qemu/qemu_block.c            | 336 +++++++++++
 src/qemu/qemu_block.h            |  22 +
 src/qemu/qemu_blockjob.c         |  20 +-
 src/qemu/qemu_blockjob.h         |   1 +
 src/qemu/qemu_domain.c           |  95 +--
 src/qemu/qemu_domain.h           |   9 -
 src/qemu/qemu_driver.c           | 292 +---------
 src/qemu/qemu_monitor.c          |  21 +-
 src/qemu/qemu_monitor.h          |   8 +-
 src/qemu/qemu_monitor_json.c     |  26 +-
 src/qemu/qemu_monitor_json.h     |   8 +-
 src/qemu/qemu_process.c          |  32 ++
 src/qemu/qemu_snapshot.c         | 956 ++++++++++++++++++++++++++++---
 src/qemu/qemu_snapshot.h         |   4 +
 tests/qemumonitorjsontest.c      |   4 +-
 tools/virsh-domain.c             |   1 +
 22 files changed, 1381 insertions(+), 476 deletions(-)

-- 
2.38.1



More information about the libvir-list mailing list