From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:38283) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S4bu7-0003G5-M9 for qemu-devel@nongnu.org; Mon, 05 Mar 2012 12:41:02 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1S4bth-0003gi-BN for qemu-devel@nongnu.org; Mon, 05 Mar 2012 12:40:59 -0500 Received: from mail-ee0-f45.google.com ([74.125.83.45]:47652) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1S4bth-0003ez-2Y for qemu-devel@nongnu.org; Mon, 05 Mar 2012 12:40:33 -0500 Received: by mail-ee0-f45.google.com with SMTP id t10so1869053eei.4 for ; Mon, 05 Mar 2012 09:40:32 -0800 (PST) Sender: Paolo Bonzini From: Paolo Bonzini Date: Mon, 5 Mar 2012 18:40:21 +0100 Message-Id: <1330969225-25287-4-git-send-email-pbonzini@redhat.com> In-Reply-To: <1330969225-25287-1-git-send-email-pbonzini@redhat.com> References: <1330969225-25287-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PATCH 3/7] vdi: merge aio_read_cb and aio_write_cb into callers List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, sw@weilnetz.de Now inline the former AIO callbacks into vdi_co_readv and vdi_co_writev. While many cleanups are possible, the code now really looks synchronous. Signed-off-by: Paolo Bonzini --- block/vdi.c | 40 ++++++++++++---------------------------- 1 files changed, 12 insertions(+), 28 deletions(-) diff --git a/block/vdi.c b/block/vdi.c index 4b780db..9e5b169 100644 --- a/block/vdi.c +++ b/block/vdi.c @@ -523,15 +523,19 @@ static VdiAIOCB *vdi_aio_setup(BlockDriverState *bs, int64_t sector_num, return acb; } -static int vdi_aio_read_cb(void *opaque, int ret) +static int vdi_co_readv(BlockDriverState *bs, + int64_t sector_num, int nb_sectors, QEMUIOVector *qiov) { - VdiAIOCB *acb = opaque; - BlockDriverState *bs = acb->common.bs; + VdiAIOCB *acb; BDRVVdiState *s = bs->opaque; uint32_t bmap_entry; uint32_t block_index; uint32_t sector_in_block; uint32_t n_sectors; + int ret; + + logout("\n"); + acb = vdi_aio_setup(bs, sector_num, qiov, nb_sectors, 0); restart: block_index = acb->sector_num / s->block_sectors; @@ -578,27 +582,19 @@ restart: return ret; } -static int vdi_co_readv(BlockDriverState *bs, +static int vdi_co_writev(BlockDriverState *bs, int64_t sector_num, int nb_sectors, QEMUIOVector *qiov) { VdiAIOCB *acb; - int ret; - - logout("\n"); - acb = vdi_aio_setup(bs, sector_num, qiov, nb_sectors, 0); - ret = vdi_aio_read_cb(acb, 0); - return ret; -} - -static int vdi_aio_write_cb(void *opaque, int ret) -{ - VdiAIOCB *acb = opaque; - BlockDriverState *bs = acb->common.bs; BDRVVdiState *s = bs->opaque; uint32_t bmap_entry; uint32_t block_index; uint32_t sector_in_block; uint32_t n_sectors; + int ret; + + logout("\n"); + acb = vdi_aio_setup(bs, sector_num, qiov, nb_sectors, 1); restart: block_index = acb->sector_num / s->block_sectors; @@ -710,18 +706,6 @@ restart: return ret; } -static int vdi_co_writev(BlockDriverState *bs, - int64_t sector_num, int nb_sectors, QEMUIOVector *qiov) -{ - VdiAIOCB *acb; - int ret; - - logout("\n"); - acb = vdi_aio_setup(bs, sector_num, qiov, nb_sectors, 1); - ret = vdi_aio_write_cb(acb, 0); - return ret; -} - static int vdi_create(const char *filename, QEMUOptionParameter *options) { int fd; -- 1.7.7.6