mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-11 15:27:47 +00:00
qemu: correct misspelled 'enospc' option, and only use for werror
This resolves: https://bugzilla.redhat.com/show_bug.cgi?id=730909 When support for setting the qemu disk error policy to "enospc" was added, it was inadvertently spelled "enospace". This patch corrects that on the qemu commandline (while retaining the "enospace" spelling for libvirt's XML). Also, while examining the qemu source, I found that "enospc" is not allowed for the read error policy, only for write error policy (makes sense). Since libvirt currently only has a single error policy setting, when "enospace" is selected, the read error policy is set to "ignore".
This commit is contained in:
parent
64703c03fc
commit
12062abb89
@ -1692,11 +1692,25 @@ qemuBuildDriveStr(virDomainDiskDefPtr disk,
|
||||
}
|
||||
|
||||
if (qemuCapsGet(qemuCaps, QEMU_CAPS_MONITOR_JSON)) {
|
||||
if (disk->error_policy) {
|
||||
virBufferAsprintf(&opt, ",werror=%s,rerror=%s",
|
||||
virDomainDiskErrorPolicyTypeToString(disk->error_policy),
|
||||
virDomainDiskErrorPolicyTypeToString(disk->error_policy));
|
||||
const char *wpolicy = NULL, *rpolicy = NULL;
|
||||
|
||||
if (disk->error_policy)
|
||||
wpolicy = virDomainDiskErrorPolicyTypeToString(disk->error_policy);
|
||||
if (!rpolicy)
|
||||
rpolicy = wpolicy;
|
||||
|
||||
if (disk->error_policy == VIR_DOMAIN_DISK_ERROR_POLICY_ENOSPACE) {
|
||||
/* in the case of enospace, the option is spelled differently in qemu,
|
||||
* and it's only valid for werror, not for rerror.
|
||||
*/
|
||||
wpolicy="enospc";
|
||||
rpolicy="ignore";
|
||||
}
|
||||
|
||||
if (wpolicy)
|
||||
virBufferAsprintf(&opt, ",werror=%s", wpolicy);
|
||||
if (rpolicy)
|
||||
virBufferAsprintf(&opt, ",rerror=%s", rpolicy);
|
||||
}
|
||||
|
||||
if (disk->iomode) {
|
||||
|
Loading…
Reference in New Issue
Block a user