From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:51628) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Rzrtd-00010h-Ic for qemu-devel@nongnu.org; Tue, 21 Feb 2012 10:44:59 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RzrtX-0002kP-GE for qemu-devel@nongnu.org; Tue, 21 Feb 2012 10:44:53 -0500 Received: from mail-pw0-f45.google.com ([209.85.160.45]:57487) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RzrtX-0002kK-5p for qemu-devel@nongnu.org; Tue, 21 Feb 2012 10:44:47 -0500 Received: by pbbro12 with SMTP id ro12so9200820pbb.4 for ; Tue, 21 Feb 2012 07:44:45 -0800 (PST) Sender: Paolo Bonzini From: Paolo Bonzini Date: Tue, 21 Feb 2012 16:43:52 +0100 Message-Id: <1329839032-31221-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PATCH] block: drop aio_multiwrite in BlockDriver List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com These were never used. Signed-off-by: Paolo Bonzini --- block.c | 23 ++------------------- block_int.h | 6 ------ 2 files changed, 3 insertions(+), 26 deletions(-) diff --git a/block.c b/block.c index ae297bb..b395f7b 100644 --- a/block.c +++ b/block.c @@ -2767,7 +2793,6 @@ typedef struct MultiwriteCB { BlockDriverCompletionFunc *cb; void *opaque; QEMUIOVector *free_qiov; - void *free_buf; } callbacks[]; } MultiwriteCB; @@ -2781,7 +2806,6 @@ static void multiwrite_user_cb(MultiwriteCB *mcb) qemu_iovec_destroy(mcb->callbacks[i].free_qiov); } g_free(mcb->callbacks[i].free_qiov); - qemu_vfree(mcb->callbacks[i].free_buf); } } @@ -2838,20 +2862,11 @@ static int multiwrite_merge(BlockDriverState *bs, BlockRequest *reqs, int merge = 0; int64_t oldreq_last = reqs[outidx].sector + reqs[outidx].nb_sectors; - // This handles the cases that are valid for all block drivers, namely - // exactly sequential writes and overlapping writes. + // Handle exactly sequential writes and overlapping writes. if (reqs[i].sector <= oldreq_last) { merge = 1; } - // The block driver may decide that it makes sense to combine requests - // even if there is a gap of some sectors between them. In this case, - // the gap is filled with zeros (therefore only applicable for yet - // unused space in format like qcow2). - if (!merge && bs->drv->bdrv_merge_requests) { - merge = bs->drv->bdrv_merge_requests(bs, &reqs[outidx], &reqs[i]); - } - if (reqs[outidx].qiov->niov + reqs[i].qiov->niov + 1 > IOV_MAX) { merge = 0; } @@ -2868,14 +2883,8 @@ static int multiwrite_merge(BlockDriverState *bs, BlockRequest *reqs, size = (reqs[i].sector - reqs[outidx].sector) << 9; qemu_iovec_concat(qiov, reqs[outidx].qiov, size); - // We might need to add some zeros between the two requests - if (reqs[i].sector > oldreq_last) { - size_t zero_bytes = (reqs[i].sector - oldreq_last) << 9; - uint8_t *buf = qemu_blockalign(bs, zero_bytes); - memset(buf, 0, zero_bytes); - qemu_iovec_add(qiov, buf, zero_bytes); - mcb->callbacks[i].free_buf = buf; - } + // We should need to add any zeros between the two requests + assert (reqs[i].sector <= oldreq_last); // Add the second request qemu_iovec_concat(qiov, reqs[i].qiov, reqs[i].qiov->size); diff --git a/block_int.h b/block_int.h index 7946cf6..3eeca58 100644 --- a/block_int.h +++ b/block_int.h @@ -162,12 +162,6 @@ struct BlockDriver { */ int coroutine_fn (*bdrv_co_flush_to_os)(BlockDriverState *bs); - int (*bdrv_aio_multiwrite)(BlockDriverState *bs, BlockRequest *reqs, - int num_reqs); - int (*bdrv_merge_requests)(BlockDriverState *bs, BlockRequest* a, - BlockRequest *b); - - const char *protocol_name; int (*bdrv_truncate)(BlockDriverState *bs, int64_t offset); int64_t (*bdrv_getlength)(BlockDriverState *bs); -- 1.7.7.6