From: Cole Robinson Date: Mon, 6 Mar 2017 21:50:53 +0000 (-0500) Subject: storage: Don't pass 'iso' format to qemu-img X-Git-Tag: v3.2.0-rc1~342 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0e5db76262729e4c199e62c6cb00c90391073b4e;p=thirdparty%2Flibvirt.git storage: Don't pass 'iso' format to qemu-img $ virsh vol-clone /tmp/test.iso new.iso error: Failed to clone vol from test.iso error: internal error: Child process (/bin/qemu-img convert -f iso -O iso /tmp/test.iso /tmp/new.iso) unexpected exit status 1: qemu-img: Could not open '/tmp/test.iso': Unknown driver 'iso' Map iso->raw before sending the format value to qemu-img https://bugzilla.redhat.com/show_bug.cgi?id=972784 https://bugzilla.redhat.com/show_bug.cgi?id=1419395 --- diff --git a/src/storage/storage_util.c b/src/storage/storage_util.c index 41253b9a4c..bf6f0b31ef 100644 --- a/src/storage/storage_util.c +++ b/src/storage/storage_util.c @@ -1009,6 +1009,8 @@ storageBackendCreateQemuImgSetInput(virStorageVolDefPtr inputvol, info->inputFormat = inputvol->target.format; if (inputvol->type == VIR_STORAGE_VOL_BLOCK) info->inputFormat = VIR_STORAGE_FILE_RAW; + if (info->inputFormat == VIR_STORAGE_FILE_ISO) + info->inputFormat = VIR_STORAGE_FILE_RAW; if (!(info->inputFormatStr = virStorageFileFormatTypeToString(info->inputFormat))) { virReportError(VIR_ERR_INTERNAL_ERROR, @@ -1175,6 +1177,9 @@ virStorageBackendCreateQemuImgCmdFromVol(virConnectPtr conn, if (vol->type == VIR_STORAGE_VOL_BLOCK) info.format = VIR_STORAGE_FILE_RAW; + if (info.format == VIR_STORAGE_FILE_ISO) + info.format = VIR_STORAGE_FILE_RAW; + if (!(type = virStorageFileFormatTypeToString(info.format))) { virReportError(VIR_ERR_INTERNAL_ERROR, _("unknown storage vol type %d"),