Charles Duffy wrote: >>From 3c4f6568623ed420a9e71da33b9ce74abda289a8 Mon Sep 17 00:00:00 2001 > From: Charles Duffy <Charles_Duffy@xxxxxxxx> > Date: Wed, 9 Sep 2009 15:53:25 -0500 > Subject: [PATCH] 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. > > lzop is added to the enum after xz, leaving xz at the position lzma was > originally in (which is appropriate, as it should handle decompression of > lzma-format files) and giving lzop back its prior position. > > Documentation in qemu.conf is amended to remove references to lzma and add > suggestions regarding the tradeoffs made by various compressors. > > Signed-off-by: Charles Duffy <charles@xxxxxxxxx> > --- > libvirt.spec.in | 1 + > src/qemu.conf | 7 ++++--- > src/qemu_driver.c | 9 ++++++--- > 3 files changed, 11 insertions(+), 6 deletions(-) ... > 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"), Thanks for that patch. I'm glad I read it, since it made me realize my clean-up from yesterday was incomplete. You should not have had to add the literal, "lzop", in two places. This completes the job: >From 05b3f087b7ac29cebd22dfdf099f8fb36a31c86a Mon Sep 17 00:00:00 2001 From: Jim Meyering <meyering@xxxxxxxxxx> Date: Thu, 10 Sep 2009 11:26:00 +0200 Subject: [PATCH] qemu_driver.c: factor out more duplication * src/qemu_driver.c (qemudDomainRestore): Use the new ...TypeToString function here, too. (qemudSaveCompressionTypeToString): Declare. --- src/qemu_driver.c | 18 +++++++----------- 1 files changed, 7 insertions(+), 11 deletions(-) diff --git a/src/qemu_driver.c b/src/qemu_driver.c index 5c2a8ec..256e8e7 100644 --- a/src/qemu_driver.c +++ b/src/qemu_driver.c @@ -4379,21 +4379,17 @@ static int qemudDomainRestore(virConnectPtr conn, if (header.version == 2) { const char *intermediate_argv[3] = { NULL, "-dc", NULL }; - if (header.compressed == QEMUD_SAVE_FORMAT_GZIP) - intermediate_argv[0] = "gzip"; - else if (header.compressed == QEMUD_SAVE_FORMAT_BZIP2) - 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) { + const char *prog = qemudSaveCompressionTypeToString(header.compressed); + if (prog == NULL) { qemudReportError(conn, NULL, NULL, VIR_ERR_OPERATION_FAILED, - _("Unknown compressed save format %d"), + _("Invalid compressed save format %d"), header.compressed); goto cleanup; } - if (intermediate_argv[0] != NULL) { + + if (header.compressed != QEMUD_SAVE_FORMAT_RAW) + intermediate_argv[0] = prog; + else { intermediatefd = fd; fd = -1; if (virExec(conn, intermediate_argv, NULL, NULL, -- 1.6.5.rc0.164.g5f6b0 -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list