提交 f69ce3fe 编写于 作者: K KAMEZAWA Hiroyuki 提交者: Eric Blake

qemu: check compression program availability of virsh save and dump

上级 95a17abd
......@@ -5742,6 +5742,22 @@ cleanup:
return ret;
}
/* Returns true if a compression program is available in PATH */
static bool qemudCompressProgramAvailable(enum qemud_save_formats compress)
{
const char *prog;
char *c;
if (compress == QEMUD_SAVE_FORMAT_RAW)
return true;
prog = qemudSaveCompressionTypeToString(compress);
c = virFindFileInPath(prog);
if (!c)
return false;
VIR_FREE(c);
return true;
}
static int qemudDomainSave(virDomainPtr dom, const char *path)
{
struct qemud_driver *driver = dom->conn->privateData;
......@@ -5761,6 +5777,12 @@ static int qemudDomainSave(virDomainPtr dom, const char *path)
"in configuration file"));
return -1;
}
if (!qemudCompressProgramAvailable(compressed)) {
qemuReportError(VIR_ERR_OPERATION_FAILED,
"%s", _("Compression program for image format "
"in configuration file isn't available"));
return -1;
}
}
vm = virDomainFindByUUID(&driver->domains, dom->uuid);
......@@ -5924,6 +5946,12 @@ static int qemudDomainCoreDump(virDomainPtr dom,
"configuration file"));
return -1;
}
if (!qemudCompressProgramAvailable(compress)) {
qemuReportError(VIR_ERR_OPERATION_FAILED,
"%s", _("Compression program for dump image format "
"in configuration file isn't available"));
return -1;
}
}
qemuDriverLock(driver);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册