From 5ab8cc78c4ab026338070409196fe14ee56a0d04 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Wed, 4 Nov 2020 13:37:35 +0100 Subject: [PATCH] qemu: backup: Add partial validation of incremental backup checkpoint MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 Reviewed-by: Ján Tomko --- src/qemu/qemu_backup.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/qemu/qemu_backup.c b/src/qemu/qemu_backup.c index 2e3a2b2e3c..99dee46c4f 100644 --- a/src/qemu/qemu_backup.c +++ b/src/qemu/qemu_backup.c @@ -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 -- 2.47.2