From: Charles Duffy Date: Thu, 10 Sep 2009 09:13:33 +0000 (+0200) Subject: Reintroduce support for lzop compression X-Git-Tag: v0.7.1~52 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=8d4ed2ad3d55e18361b72c9beb89ec048ac512d8;p=thirdparty%2Flibvirt.git Reintroduce support for lzop compression lzop was removed due to some confusion over whether it provided functional advantages distinct from xz. This has been addressed in the mailing list post archived at http://permalink.gmane.org/gmane.comp.emulators.libvirt/16487, and support for lzop is re-added here. * libvirt.spec.in: add dependancy on lzop * src/qemu.conf: update documentation of save_image_format * src/qemu_driver.c: re-add lzop compression option --- diff --git a/libvirt.spec.in b/libvirt.spec.in index b01f9c2e9a..0157eeea67 100644 --- a/libvirt.spec.in +++ b/libvirt.spec.in @@ -117,6 +117,7 @@ Requires: /usr/bin/qemu-img # For image compression Requires: gzip Requires: bzip2 +Requires: lzop Requires: xz %else %if %{with_xen} diff --git a/src/qemu.conf b/src/qemu.conf index 342bb8a19c..6d6b86afdb 100644 --- a/src/qemu.conf +++ b/src/qemu.conf @@ -134,9 +134,10 @@ # 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", "lzma", "xz", -# 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. +# are being saved to disk, you can also set "lzop", "gzip", "bzip2", or "xz" +# for save_image_format. Note that this means you slow down the process of +# saving a domain in order to save disk space; the list above is in descending +# order by performance and ascending order by compression ratio. # # save_image_format = "raw" diff --git a/src/qemu_driver.c b/src/qemu_driver.c index 8f16e726cb..5c2a8ec255 100644 --- a/src/qemu_driver.c +++ b/src/qemu_driver.c @@ -3624,10 +3624,10 @@ enum qemud_save_formats { QEMUD_SAVE_FORMAT_BZIP2 = 2, /* * Deprecated by xz and never used as part of a release - * QEMUD_SAVE_FORMAT_LZMA, - * QEMUD_SAVE_FORMAT_LZOP, + * QEMUD_SAVE_FORMAT_LZMA */ QEMUD_SAVE_FORMAT_XZ = 3, + QEMUD_SAVE_FORMAT_LZOP = 4, /* Note: add new members only at the end. These values are used in the on-disk format. Do not change or re-use numbers. */ @@ -3640,7 +3640,8 @@ VIR_ENUM_IMPL(qemudSaveCompression, QEMUD_SAVE_FORMAT_LAST, "raw", "gzip", "bzip2", - "xz") + "xz", + "lzop") struct qemud_save_header { char magic[sizeof(QEMUD_SAVE_MAGIC)-1]; @@ -4384,6 +4385,8 @@ static int qemudDomainRestore(virConnectPtr conn, intermediate_argv[0] = "bzip2"; else if (header.compressed == QEMUD_SAVE_FORMAT_XZ) intermediate_argv[0] = "xz"; + 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"),