qemu: backup: Add partial validation of incremental backup checkpoint

Verify that the checkpoint requested by an incremental backup exists.
Unfortunately validating whether the checkpoint configuration actually
matches the disk may not be reasonably feasible as the disk may have
been renamed/snapshotted/etc. We still rely on bitmap presence.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2020-11-04 13:37:35 +01:00
parent a4d4d2bd5d
commit 5ab8cc78c4

View File

@ -277,6 +277,17 @@ qemuBackupDiskPrepareDataOne(virDomainObjPtr vm,
return -1;
if (dd->backupdisk->incremental) {
/* We deliberately don't check the config of the disk in the checkpoint
* definition as it's not guaranteed that the disks still correspond.
* We just verify that a checkpoint exists and later on that the disk
* has corresponding bitmap. */
if (!virDomainCheckpointFindByName(vm->checkpoints, dd->backupdisk->incremental)) {
virReportError(VIR_ERR_NO_DOMAIN_CHECKPOINT,
_("Checkpoint '%s' for incremental backup of disk '%s' not found"),
dd->backupdisk->incremental, dd->backupdisk->name);
return -1;
}
if (dd->backupdisk->exportbitmap)
dd->incrementalBitmap = g_strdup(dd->backupdisk->exportbitmap);
else