* Anthony Liguori <anth...@codemonkey.ws> [2010-06-09 14:36]: > On 06/09/2010 02:28 PM, Ryan Harper wrote: > >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 > > > > Do you really have to say raw and file in the whitelist? Is that what > the source of the problem is?
I have to add 'file' to the whitelist string to get the above command line to work. > > Regards, > > Anthony Liguori > > >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; > > } > > > > -- Ryan Harper Software Engineer; Linux Technology Center IBM Corp., Austin, Tx ry...@us.ibm.com