
Charles Duffy wrote:
Daniel Berteaud wrote:
- the second problem is present since libvirt 0.7.1. Now that the saved file can be compressed, it seems we cannot save in a raw format any more.
Yeeowch.
How's this for a fix?
Ah, you beat me to it, but...
diff --git a/src/qemu_driver.c b/src/qemu_driver.c index a65334f..ff30421 100644 --- a/src/qemu_driver.c +++ b/src/qemu_driver.c @@ -3912,10 +3912,15 @@ static int qemudDomainSave(virDomainPtr dom, goto cleanup; }
- if (STREQ (prog, "raw")) + const char *args;
I think you'll get a warning about "mixing code and data" here. At least, it's not at the top of a block, so we should move it to the top of a block. Otherwise it looks OK to me.
+ if (STREQ (prog, "raw")) { prog = "cat"; + args = ""; + } else { + args = "-c"; + } internalret = virAsprintf(&command, "migrate \"exec:" - "%s -c >> '%s' 2>/dev/null\"", prog, safe_path); + "%s %s >> '%s' 2>/dev/null\"", prog, args, safe_path);
if (internalret < 0) { virReportOOMError(dom->conn);
-- Chris Lalancette