From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:49047) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YEO56-00063O-4n for qemu-devel@nongnu.org; Thu, 22 Jan 2015 15:10:21 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YEO55-0005vU-AT for qemu-devel@nongnu.org; Thu, 22 Jan 2015 15:10:20 -0500 Received: from mx1.redhat.com ([209.132.183.28]:43101) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YEO55-0005vM-2A for qemu-devel@nongnu.org; Thu, 22 Jan 2015 15:10:19 -0500 Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id t0MKAHh8015442 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL) for ; Thu, 22 Jan 2015 15:10:18 -0500 From: Max Reitz Date: Thu, 22 Jan 2015 15:10:01 -0500 Message-Id: <1421957411-31759-5-git-send-email-mreitz@redhat.com> In-Reply-To: <1421957411-31759-1-git-send-email-mreitz@redhat.com> References: <1421957411-31759-1-git-send-email-mreitz@redhat.com> Subject: [Qemu-devel] [PATCH v2 04/14] block/xen: Use blk_new_open() in blk_connect() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Kevin Wolf , Markus Armbruster , Stefan Hajnoczi , Max Reitz Signed-off-by: Max Reitz --- hw/block/xen_disk.c | 24 ++++++++++-------------- 1 file changed, 10 insertions(+), 14 deletions(-) diff --git a/hw/block/xen_disk.c b/hw/block/xen_disk.c index 21842a0..da333a4 100644 --- a/hw/block/xen_disk.c +++ b/hw/block/xen_disk.c @@ -899,28 +899,24 @@ static int blk_connect(struct XenDevice *xendev) Error *local_err = NULL; BlockBackend *blk; BlockDriver *drv; - BlockDriverState *bs; + QDict *options = NULL; - /* setup via xenbus -> create new block driver instance */ - xen_be_printf(&blkdev->xendev, 2, "create new bdrv (xenbus setup)\n"); - blk = blk_new_with_bs(blkdev->dev, NULL); - if (!blk) { - return -1; + if (strcmp(blkdev->fileproto, "")) { + options = qdict_new(); + qdict_put_obj(options, "driver", + QOBJECT(qstring_from_str(blkdev->fileproto))); } - blkdev->blk = blk; - bs = blk_bs(blk); - drv = bdrv_find_whitelisted_format(blkdev->fileproto, readonly); - if (bdrv_open(&bs, blkdev->filename, NULL, NULL, qflags, - drv, &local_err) != 0) { + /* setup via xenbus -> create new block driver instance */ + xen_be_printf(&blkdev->xendev, 2, "create new bdrv (xenbus setup)\n"); + blkdev->blk = blk_new_open(blkdev->dev, blkdev->filename, NULL, options, + qflags, &local_err); + if (!blkdev->blk) { xen_be_printf(&blkdev->xendev, 0, "error: %s\n", error_get_pretty(local_err)); error_free(local_err); - blk_unref(blk); - blkdev->blk = NULL; return -1; } - assert(bs == blk_bs(blk)); } else { /* setup via qemu cmdline -> already setup for us */ xen_be_printf(&blkdev->xendev, 2, "get configured bdrv (cmdline setup)\n"); -- 2.1.0