From patchwork Wed Jun 9 19:28:09 2010 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ryan Harper X-Patchwork-Id: 55121 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.gnu.org (lists.gnu.org [199.232.76.165]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (Client did not present a certificate) by ozlabs.org (Postfix) with ESMTPS id DCFC11007D1 for ; Thu, 10 Jun 2010 05:29:57 +1000 (EST) Received: from localhost ([127.0.0.1]:38219 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OMQyI-0006QY-6X for incoming@patchwork.ozlabs.org; Wed, 09 Jun 2010 15:29:54 -0400 Received: from [140.186.70.92] (port=59213 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1OMQwn-0005fl-JI for qemu-devel@nongnu.org; Wed, 09 Jun 2010 15:28:22 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1OMQwm-0004RA-DH for qemu-devel@nongnu.org; Wed, 09 Jun 2010 15:28:21 -0400 Received: from e32.co.us.ibm.com ([32.97.110.150]:48412) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1OMQwm-0004Q9-8P for qemu-devel@nongnu.org; Wed, 09 Jun 2010 15:28:20 -0400 Received: from d03relay02.boulder.ibm.com (d03relay02.boulder.ibm.com [9.17.195.227]) by e32.co.us.ibm.com (8.14.4/8.13.1) with ESMTP id o59JKl1h015536 for ; Wed, 9 Jun 2010 13:20:47 -0600 Received: from d03av01.boulder.ibm.com (d03av01.boulder.ibm.com [9.17.195.167]) by d03relay02.boulder.ibm.com (8.13.8/8.13.8/NCO v9.1) with ESMTP id o59JSERv247614 for ; Wed, 9 Jun 2010 13:28:14 -0600 Received: from d03av01.boulder.ibm.com (loopback [127.0.0.1]) by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVout) with ESMTP id o59JSDEs000421 for ; Wed, 9 Jun 2010 13:28:13 -0600 Received: from localhost.localdomain (frylock.austin.ibm.com [9.53.41.12]) by d03av01.boulder.ibm.com (8.14.4/8.13.1/NCO v10.0 AVin) with ESMTP id o59JSDiR000414 for ; Wed, 9 Jun 2010 13:28:13 -0600 Received: by localhost.localdomain (Postfix, from userid 1000) id C83521BF80; Wed, 9 Jun 2010 14:28:09 -0500 (CDT) Date: Wed, 9 Jun 2010 14:28:09 -0500 From: Ryan Harper To: qemu-devel@nongnu.org Message-ID: <20100609192809.GX5280@us.ibm.com> Mime-Version: 1.0 Content-Disposition: inline User-Agent: Mutt/1.5.6+20040907i X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) Subject: [Qemu-devel] [PATCH] Add an error_report when failing to open due to block-drv-whitelist X-BeenThere: qemu-devel@nongnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org Errors-To: qemu-devel-bounces+incoming=patchwork.ozlabs.org@nongnu.org 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 --- 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; }