When configure qemu with --block-drv-whitelist we don't report when we are blocked by the white list and the resulting error message is misleading:
./configure --target-list=x86_64-softmmu \ --block-drv-whitelist=qcow2,raw,host_device,host_cdrom x86_64-softmmu/qemu-system-x86_64 -L pc-bios -m 512 -drive \ file=fedora9_32_20G.qcow2,if=ide -monitor stdio qemu: could not open disk image fedora9_32_20G.qcow2: Inappropriate ioctl for device Which might lead one to look at the bdrv probe functions for floppy/cdrom because we indeed will get an ioctl failure stored in errno and we report this in vl.c when we get a non-zero return value from bdrv_open(). This patch adds an error report when we fail the whitelist and changes the errno value to ENOPROTOOPT which was the closest thing I could think of that matched the actual error. Now we get the following output on whitelist failure: x86_64-softmmu/qemu-system-x86_64 -L pc-bios -m 512 -drive \ file=fedora9_32_20G.qcow2,if=ide -monitor stdio qemu-system-x86_64: -drive file=fedora9_32_20G.qcow2,if=ide: block-drv-whitelist prevents using format 'file' qemu: could not open disk image fedora9_32_20G.qcow2: Protocol not supported Signed-off-by: Ryan Harper <ry...@us.ibm.com> --- block.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-) diff --git a/block.c b/block.c index 39724c1..ffcf7f2 100644 --- a/block.c +++ b/block.c @@ -403,6 +403,9 @@ static int bdrv_open_common(BlockDriverState *bs, const char *filename, pstrcpy(bs->filename, sizeof(bs->filename), filename); if (use_bdrv_whitelist && !bdrv_is_whitelisted(drv)) { + error_report("block-drv-whitelist prevents using format '%s'", drv->format_name); + /* reset errno since we're failing because of whitelist restrictions */ + errno = EPROTONOSUPPORT; return -ENOTSUP; } -- 1.6.3.3 -- Ryan Harper Software Engineer; Linux Technology Center IBM Corp., Austin, Tx ry...@us.ibm.com