The error in getCompressionType will never be reported, change
the errors codes into warning (VIR_WARN("%s", _(foo)); doesn't break
syntax-check rule), and also improve the docs in qemu.conf to tell
user the truth.
---
src/qemu/qemu.conf | 10 ++++++++--
src/qemu/qemu_driver.c | 15 ++++++++-------
2 files changed, 16 insertions(+), 9 deletions(-)
diff --git a/src/qemu/qemu.conf b/src/qemu/qemu.conf
index 145062c..7de6863 100644
--- a/src/qemu/qemu.conf
+++ b/src/qemu/qemu.conf
@@ -196,8 +196,14 @@
# 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 is used when you use 'virsh save' at scheduled saving.
-# dump_image_format is used when you use 'virsh dump' at emergency crashdump.
+# save_image_format is used when you use 'virsh save' at scheduled
+# saving, and it is an error if the specified save_image_format is
+# not valid, or the according compression program can't be found.
+#
+# dump_image_format is used when you use 'virsh dump' at emergency
+# crashdump, and if the specified dump_image_format is not valid, or
+# the according compression program can't be found, this falls
+# back to "raw" compression.
#
# save_image_format = "raw"
# dump_image_format = "raw"
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 0066c55..e9bd421 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -2712,17 +2712,18 @@ getCompressionType(struct qemud_driver *driver)
*/
if (driver->dumpImageFormat) {
compress = qemudSaveCompressionTypeFromString(driver->dumpImageFormat);
+ /* Use "raw" as the format if the specified format is not valid,
+ * or the compress program is not available,
+ */
if (compress < 0) {
- qemuReportError(VIR_ERR_OPERATION_FAILED, "%s",
- _("Invalid dump image format specified in "
- "configuration file, using raw"));
+ VIR_WARN("%s", _("Invalid dump image format specified in
"
+ "configuration file, using raw"));
return QEMUD_SAVE_FORMAT_RAW;
}
if (!qemudCompressProgramAvailable(compress)) {
- qemuReportError(VIR_ERR_OPERATION_FAILED,
- "%s", _("Compression program for dump image
format "
- "in configuration file isn't available,
"
- "using raw"));
+ VIR_WARN("%s", _("Compression program for dump image format
"
+ "in configuration file isn't available, "
+ "using raw"));
return QEMUD_SAVE_FORMAT_RAW;
}
}
--
1.7.6