From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38007) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XnN9v-00013R-Ef for qemu-devel@nongnu.org; Sun, 09 Nov 2014 02:43:45 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1XnN9p-000141-CI for qemu-devel@nongnu.org; Sun, 09 Nov 2014 02:43:39 -0500 Received: from mail-pa0-f43.google.com ([209.85.220.43]:44746) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1XnN9p-00013q-6K for qemu-devel@nongnu.org; Sun, 09 Nov 2014 02:43:33 -0500 Received: by mail-pa0-f43.google.com with SMTP id eu11so6224902pac.2 for ; Sat, 08 Nov 2014 23:43:32 -0800 (PST) From: Ming Lei Date: Sun, 9 Nov 2014 15:42:50 +0800 Message-Id: <1415518978-2837-6-git-send-email-ming.lei@canonical.com> In-Reply-To: <1415518978-2837-1-git-send-email-ming.lei@canonical.com> References: <1415518978-2837-1-git-send-email-ming.lei@canonical.com> Subject: [Qemu-devel] [PATCH 05/13] block/linux-aio: pass 'BlockDriverState' to laio_attach_aio_context and its pair List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, Peter Maydell , Paolo Bonzini , Stefan Hajnoczi , Kevin Wolf Cc: Ming Lei , Fam Zheng This patch introduces parameter of 'BlockDriverState' to laio_attach_aio_context() and its pair, so that it will be easier to support IO submission as batch in AioContext wide. Signed-off-by: Ming Lei --- block/linux-aio.c | 6 ++++-- block/raw-aio.h | 6 ++++-- block/raw-posix.c | 4 ++-- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/block/linux-aio.c b/block/linux-aio.c index 95cd0dc..17de2e3 100644 --- a/block/linux-aio.c +++ b/block/linux-aio.c @@ -429,7 +429,8 @@ static void laio_state_free(struct qemu_laio_state *s, AioContext *context) g_free(s); } -void laio_detach_aio_context(void *s_, AioContext *old_context) +void laio_detach_aio_context(void *s_, BlockDriverState *bs, + AioContext *old_context) { QemuLaioState *qs = s_; @@ -437,7 +438,8 @@ void laio_detach_aio_context(void *s_, AioContext *old_context) qs->state = NULL; } -void laio_attach_aio_context(void *s_, AioContext *new_context) +void laio_attach_aio_context(void *s_, BlockDriverState *bs, + AioContext *new_context) { QemuLaioState *qs = s_; struct qemu_laio_state *s = laio_state_alloc(new_context); diff --git a/block/raw-aio.h b/block/raw-aio.h index 80681ce..61a5b96 100644 --- a/block/raw-aio.h +++ b/block/raw-aio.h @@ -38,8 +38,10 @@ void laio_cleanup(void *s); BlockAIOCB *laio_submit(BlockDriverState *bs, void *aio_ctx, int fd, int64_t sector_num, QEMUIOVector *qiov, int nb_sectors, BlockCompletionFunc *cb, void *opaque, int type); -void laio_detach_aio_context(void *s, AioContext *old_context); -void laio_attach_aio_context(void *s, AioContext *new_context); +void laio_detach_aio_context(void *s, BlockDriverState *bs, + AioContext *old_context); +void laio_attach_aio_context(void *s, BlockDriverState *bs, + AioContext *new_context); void laio_io_plug(BlockDriverState *bs, void *aio_ctx); int laio_io_unplug(BlockDriverState *bs, void *aio_ctx, bool unplug); #endif diff --git a/block/raw-posix.c b/block/raw-posix.c index e100ae2..5b7f20b 100644 --- a/block/raw-posix.c +++ b/block/raw-posix.c @@ -323,7 +323,7 @@ static void raw_detach_aio_context(BlockDriverState *bs) BDRVRawState *s = bs->opaque; if (s->use_aio) { - laio_detach_aio_context(s->aio_ctx, bdrv_get_aio_context(bs)); + laio_detach_aio_context(s->aio_ctx, bs, bdrv_get_aio_context(bs)); } #endif } @@ -335,7 +335,7 @@ static void raw_attach_aio_context(BlockDriverState *bs, BDRVRawState *s = bs->opaque; if (s->use_aio) { - laio_attach_aio_context(s->aio_ctx, new_context); + laio_attach_aio_context(s->aio_ctx, bs, new_context); } #endif } -- 1.7.9.5