From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56555) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WzoJM-0003jR-CC for qemu-devel@nongnu.org; Wed, 25 Jun 2014 10:36:38 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WzoJG-0002X3-D2 for qemu-devel@nongnu.org; Wed, 25 Jun 2014 10:36:32 -0400 Received: from mx1.redhat.com ([209.132.183.28]:58478) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WzoJG-0002Wc-4L for qemu-devel@nongnu.org; Wed, 25 Jun 2014 10:36:26 -0400 From: Kevin Wolf Date: Wed, 25 Jun 2014 16:35:56 +0200 Message-Id: <1403706959-6979-7-git-send-email-kwolf@redhat.com> In-Reply-To: <1403706959-6979-1-git-send-email-kwolf@redhat.com> References: <1403706959-6979-1-git-send-email-kwolf@redhat.com> Subject: [Qemu-devel] [PATCH v2 6/9] block: Inline bdrv_file_open() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, benoit.canet@irqsave.net, armbru@redhat.com, mreitz@redhat.com, stefanha@redhat.com It doesn't do much any more, we can move the code to bdrv_open() now. Signed-off-by: Kevin Wolf Reviewed-by: Benoit Canet --- block.c | 51 +++++++++++---------------------------------------- 1 file changed, 11 insertions(+), 40 deletions(-) diff --git a/block.c b/block.c index 412f023..64e1176 100644 --- a/block.c +++ b/block.c @@ -1125,44 +1125,6 @@ static int bdrv_fill_options(QDict **options, const char **pfilename, int flags, return 0; } -/* - * Opens a file using a protocol (file, host_device, nbd, ...) - * - * options is an indirect pointer to a QDict of options to pass to the block - * drivers, or pointer to NULL for an empty set of options. If this function - * takes ownership of the QDict reference, it will set *options to NULL; - * otherwise, it will contain unused/unrecognized options after this function - * returns. Then, the caller is responsible for freeing it. If it intends to - * reuse the QDict, QINCREF() should be called beforehand. - */ -static int bdrv_file_open(BlockDriverState *bs, BlockDriver *drv, - QDict **options, int flags, Error **errp) -{ - const char *filename; - Error *local_err = NULL; - int ret; - - filename = qdict_get_try_str(*options, "filename"); - - /* Open the file */ - if (!drv->bdrv_file_open) { - ret = bdrv_open(&bs, filename, NULL, *options, flags, drv, &local_err); - *options = NULL; - } else { - ret = bdrv_open_common(bs, NULL, *options, flags, drv, &local_err); - } - if (ret < 0) { - error_propagate(errp, local_err); - goto fail; - } - - bs->growable = 1; - return 0; - -fail: - return ret; -} - void bdrv_set_backing_hd(BlockDriverState *bs, BlockDriverState *backing_hd) { @@ -1490,9 +1452,18 @@ int bdrv_open(BlockDriverState **pbs, const char *filename, /* Open the image */ if (flags & BDRV_O_PROTOCOL) { - ret = bdrv_file_open(bs, drv, &options, flags & ~BDRV_O_PROTOCOL, - &local_err); + if (!drv->bdrv_file_open) { + const char *filename; + filename = qdict_get_try_str(options, "filename"); + ret = bdrv_open(&bs, filename, NULL, options, + flags & ~BDRV_O_PROTOCOL, drv, &local_err); + options = NULL; + } else { + ret = bdrv_open_common(bs, NULL, options, + flags & ~BDRV_O_PROTOCOL, drv, &local_err); + } if (!ret) { + bs->growable = 1; goto done; } else if (bs->drv) { goto close_and_fail; -- 1.8.3.1