diff --git a/src/conf/backup_conf.c b/src/conf/backup_conf.c
index 013c08cd6e..e151c29738 100644
--- a/src/conf/backup_conf.c
+++ b/src/conf/backup_conf.c
@@ -424,7 +424,8 @@ virDomainBackupDefAssignStore(virDomainBackupDiskDef *disk,
}
}
- if (!disk->store) {
+ if (!disk->store ||
+ virStorageSourceIsEmpty(disk->store)) {
if (virStorageSourceGetActualType(src) != VIR_STORAGE_TYPE_FILE) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("refusing to generate file name for disk '%1$s'"),
@@ -432,7 +433,9 @@ virDomainBackupDefAssignStore(virDomainBackupDiskDef *disk,
return -1;
}
- disk->store = virStorageSourceNew();
+ if (!disk->store)
+ disk->store = virStorageSourceNew();
+
disk->store->type = VIR_STORAGE_TYPE_FILE;
disk->store->path = g_strdup_printf("%s.%s", src->path, suffix);
}
diff --git a/tests/domainbackupxml2xmlin/backup-push.xml b/tests/domainbackupxml2xmlin/backup-push.xml
index 0bfec9b270..a95833d407 100644
--- a/tests/domainbackupxml2xmlin/backup-push.xml
+++ b/tests/domainbackupxml2xmlin/backup-push.xml
@@ -5,6 +5,7 @@
+
diff --git a/tests/domainbackupxml2xmlout/backup-push.xml b/tests/domainbackupxml2xmlout/backup-push.xml
index 317dcf6e47..fff7db716b 100644
--- a/tests/domainbackupxml2xmlout/backup-push.xml
+++ b/tests/domainbackupxml2xmlout/backup-push.xml
@@ -5,6 +5,9 @@
+
+
+