diff --git a/src/qemu.conf b/src/qemu.conf index 1f10b43e53b1c78a4426381e601b5f25a3cf4aa9..9aecc2637e5329e67771fbae52c5df99f17620a4 100644 --- a/src/qemu.conf +++ b/src/qemu.conf @@ -134,8 +134,8 @@ # memory from the domain is dumped out directly to a file. If you have # guests with a large amount of memory, however, this can take up quite # a bit of space. If you would like to compress the images while they -# are being saved to disk, you can also set "gzip", "bzip2", or "lzma" -# for save_image_format. Note that this means you slow down the -# process of saving a domain in order to save disk space. +# are being saved to disk, you can also set "gzip", "bzip2", "lzma" +# or "lzop" for save_image_format. Note that this means you slow down +# the process of saving a domain in order to save disk space. # # save_image_format = "raw" diff --git a/src/qemu_driver.c b/src/qemu_driver.c index f51430761aaa272ff7406b4cec8deb5a0581fd15..3ebe8020e287ff4f2ecb2e9675193f0cbad2a77e 100644 --- a/src/qemu_driver.c +++ b/src/qemu_driver.c @@ -3483,6 +3483,7 @@ enum qemud_save_formats { QEMUD_SAVE_FORMAT_GZIP, QEMUD_SAVE_FORMAT_BZIP2, QEMUD_SAVE_FORMAT_LZMA, + QEMUD_SAVE_FORMAT_LZOP, }; struct qemud_save_header { @@ -3523,6 +3524,8 @@ static int qemudDomainSave(virDomainPtr dom, header.compressed = QEMUD_SAVE_FORMAT_BZIP2; else if (STREQ(driver->saveImageFormat, "lzma")) header.compressed = QEMUD_SAVE_FORMAT_LZMA; + else if (STREQ(driver->saveImageFormat, "lzop")) + header.compressed = QEMUD_SAVE_FORMAT_LZOP; else { qemudReportError(dom->conn, dom, NULL, VIR_ERR_OPERATION_FAILED, "%s", _("Invalid save image format specified in configuration file")); @@ -3615,6 +3618,9 @@ static int qemudDomainSave(virDomainPtr dom, else if (header.compressed == QEMUD_SAVE_FORMAT_LZMA) internalret = virAsprintf(&command, "migrate \"exec:" "lzma -c >> '%s' 2>/dev/null\"", safe_path); + else if (header.compressed == QEMUD_SAVE_FORMAT_LZOP) + internalret = virAsprintf(&command, "migrate \"exec:" + "lzop -c >> '%s' 2>/dev/null\"", safe_path); else { qemudReportError(dom->conn, dom, NULL, VIR_ERR_INTERNAL_ERROR, _("Invalid compress format %d"), @@ -4237,6 +4243,8 @@ static int qemudDomainRestore(virConnectPtr conn, intermediate_argv[0] = "bzip2"; else if (header.compressed == QEMUD_SAVE_FORMAT_LZMA) intermediate_argv[0] = "lzma"; + else if (header.compressed == QEMUD_SAVE_FORMAT_LZOP) + intermediate_argv[0] = "lzop"; else if (header.compressed != QEMUD_SAVE_FORMAT_RAW) { qemudReportError(conn, NULL, NULL, VIR_ERR_OPERATION_FAILED, _("Unknown compressed save format %d"),