int
qemuDomainValidateStorageSource(virStorageSourcePtr src,
- virQEMUCapsPtr qemuCaps)
+ virQEMUCapsPtr qemuCaps,
+ bool maskBlockdev)
{
int actualType = virStorageSourceGetActualType(src);
bool blockdev = virQEMUCapsGet(qemuCaps, QEMU_CAPS_BLOCKDEV);
+ if (maskBlockdev)
+ blockdev = false;
+
if (src->format == VIR_STORAGE_FILE_COW) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
_("'cow' storage format is not supported"));
if (n->format == VIR_STORAGE_FILE_ISO)
n->format = VIR_STORAGE_FILE_RAW;
- if (qemuDomainValidateStorageSource(n, priv->qemuCaps) < 0)
+ if (qemuDomainValidateStorageSource(n, priv->qemuCaps, false) < 0)
return -1;
qemuDomainPrepareStorageSourceConfig(n, cfg, priv->qemuCaps);
qemuDomainObjPrivatePtr priv,
virQEMUDriverConfigPtr cfg)
{
- if (qemuDomainValidateStorageSource(disk->src, priv->qemuCaps) < 0)
+ if (qemuDomainValidateStorageSource(disk->src, priv->qemuCaps, true) < 0)
return -1;
qemuDomainPrepareStorageSourceConfig(disk->src, cfg, priv->qemuCaps);
if (qemuBlockStorageSourceNeedsStorageSliceLayer(src))
src->sliceStorage->nodename = g_strdup_printf("libvirt-%u-slice-sto", src->id);
- if (qemuDomainValidateStorageSource(src, priv->qemuCaps) < 0)
+ if (qemuDomainValidateStorageSource(src, priv->qemuCaps, false) < 0)
return -1;
qemuDomainPrepareStorageSourceConfig(src, cfg, priv->qemuCaps);
if (testQemuDiskXMLToJSONFakeSecrets(n) < 0)
return -1;
- if (qemuDomainValidateStorageSource(n, data->qemuCaps) < 0)
+ if (qemuDomainValidateStorageSource(n, data->qemuCaps, false) < 0)
return -1;
qemuDomainPrepareDiskSourceData(disk, n);
src->capacity = UINT_MAX * 2ULL;
src->physical = UINT_MAX + 1ULL;
- if (qemuDomainValidateStorageSource(src, data->qemuCaps) < 0)
+ if (qemuDomainValidateStorageSource(src, data->qemuCaps, false) < 0)
return -1;
if (qemuBlockStorageSourceCreateGetStorageProps(src, &protocolprops) < 0)