In preparation to allow heterogenous backups store the 'incremental'
field per-disk and fill it by default from the per-backup field.
Having this will be important once we'll want to allow incremental
backup working while hotplugging a new disk.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/conf/backup_conf.c | 8 ++++++++
src/conf/backup_conf.h | 1 +
2 files changed, 9 insertions(+)
diff --git a/src/conf/backup_conf.c b/src/conf/backup_conf.c
index c0c6f25d10..92106d8aaa 100644
--- a/src/conf/backup_conf.c
+++ b/src/conf/backup_conf.c
@@ -72,6 +72,7 @@ virDomainBackupDefFree(virDomainBackupDefPtr def)
virDomainBackupDiskDefPtr disk = def->disks + i;
g_free(disk->name);
+ g_free(disk->incremental);
g_free(disk->exportname);
g_free(disk->exportbitmap);
virObjectUnref(disk->store);
@@ -505,5 +506,12 @@ virDomainBackupAlignDisks(virDomainBackupDefPtr def,
}
}
+ for (i = 0; i < def->ndisks; i++) {
+ virDomainBackupDiskDefPtr backupdisk = &def->disks[i];
+
+ if (def->incremental && !backupdisk->incremental)
+ backupdisk->incremental = g_strdup(def->incremental);
+ }
+
return 0;
}
diff --git a/src/conf/backup_conf.h b/src/conf/backup_conf.h
index b5685317c5..172eb1cf1c 100644
--- a/src/conf/backup_conf.h
+++ b/src/conf/backup_conf.h
@@ -51,6 +51,7 @@ typedef virDomainBackupDiskDef *virDomainBackupDiskDefPtr;
struct _virDomainBackupDiskDef {
char *name; /* name matching the <target dev='...' of the domain */
virTristateBool backup; /* whether backup is requested */
+ char *incremental; /* name of the starting point checkpoint of an incremental backup
*/
char *exportname; /* name of the NBD export for pull mode backup */
char *exportbitmap; /* name of the bitmap exposed in NBD for pull mode backup */
--
2.26.2