[libvirt RFCv8 26/27] qemu: saveimage: restore compressed parallel images
Claudio Fontana
cfontana at suse.de
Sat May 7 13:43:19 UTC 2022
Signed-off-by: Claudio Fontana <cfontana at suse.de>
---
src/qemu/qemu_saveimage.c | 17 +++++++++++++++++
1 file changed, 17 insertions(+)
diff --git a/src/qemu/qemu_saveimage.c b/src/qemu/qemu_saveimage.c
index df273eba66..eed52140ed 100644
--- a/src/qemu/qemu_saveimage.c
+++ b/src/qemu/qemu_saveimage.c
@@ -649,6 +649,23 @@ int qemuSaveImageLoadMultiFd(virConnectPtr conn, virDomainObj *vm, int oflags,
QEMU_MIGRATION_PARAM_MULTIFD_CHANNELS,
nchannels) < 0)
goto cleanup;
+ if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_MIGRATION_PARAM_MULTIFD_COMPRESSION)) {
+ const char *pcomp = qemuSaveMultiFdCompTypeToString(data->header.multifd_comp);
+ if (!pcomp) {
+ virReportError(VIR_ERR_OPERATION_UNSUPPORTED,
+ _("libvirt does not support parallel compression type %u"),
+ data->header.multifd_comp);
+ goto cleanup;
+ }
+ if (qemuMigrationParamsSetString(migParams,
+ QEMU_MIGRATION_PARAM_MULTIFD_COMPRESSION,
+ pcomp) < 0)
+ goto cleanup;
+ } else if (data->header.multifd_comp != QEMU_SAVE_MULTIFD_COMP_NONE) {
+ virReportError(VIR_ERR_OPERATION_UNSUPPORTED, "%s",
+ _("QEMU does not seem to support multifd compression"));
+ goto cleanup;
+ }
if (qemuMigrationParamsApply(driver, vm, asyncJob, migParams) < 0)
goto cleanup;
--
2.35.3
More information about the libvir-list
mailing list