[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH 1/6] block: directly invoke .bdrv_aio_*() in bdrv_co
From: |
Stefan Hajnoczi |
Subject: |
[Qemu-devel] [PATCH 1/6] block: directly invoke .bdrv_aio_*() in bdrv_co_io_em() |
Date: |
Wed, 5 Oct 2011 17:17:02 +0100 |
We will unify block layer request processing across sync, aio, and
coroutines and this means a .bdrv_co_*() emulation function should not
call back into the public interface. There's no need here, just call
.bdrv_aio_*() directly.
The gory details: bdrv_co_io_em() cannot call back into the public
bdrv_aio_*() interface since that will be handled using coroutines,
which causes us to call into bdrv_co_io_em() again in an infinite loop
:).
Signed-off-by: Stefan Hajnoczi <address@hidden>
---
block.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/block.c b/block.c
index e3fe97f..dc36b2b 100644
--- a/block.c
+++ b/block.c
@@ -2990,11 +2990,11 @@ static int coroutine_fn bdrv_co_io_em(BlockDriverState
*bs, int64_t sector_num,
BlockDriverAIOCB *acb;
if (is_write) {
- acb = bdrv_aio_writev(bs, sector_num, iov, nb_sectors,
- bdrv_co_io_em_complete, &co);
+ acb = bs->drv->bdrv_aio_writev(bs, sector_num, iov, nb_sectors,
+ bdrv_co_io_em_complete, &co);
} else {
- acb = bdrv_aio_readv(bs, sector_num, iov, nb_sectors,
- bdrv_co_io_em_complete, &co);
+ acb = bs->drv->bdrv_aio_readv(bs, sector_num, iov, nb_sectors,
+ bdrv_co_io_em_complete, &co);
}
trace_bdrv_co_io(is_write, acb);
--
1.7.6.3
- Re: [Qemu-devel] [PATCH 4/6] block: switch bdrv_aio_readv() to coroutines, (continued)
- [Qemu-devel] [PATCH 2/6] block: split out bdrv_co_do_readv() and bdrv_co_do_writev(), Stefan Hajnoczi, 2011/10/05
- [Qemu-devel] [PATCH 5/6] block: mark blocks dirty on coroutine write completion, Stefan Hajnoczi, 2011/10/05
- [Qemu-devel] [PATCH 6/6] block: switch bdrv_aio_writev() to coroutines, Stefan Hajnoczi, 2011/10/05
- [Qemu-devel] [PATCH 1/6] block: directly invoke .bdrv_aio_*() in bdrv_co_io_em(),
Stefan Hajnoczi <=
- Re: [Qemu-devel] [PATCH 0/6] block: do request processing in a coroutine, Zhi Yong Wu, 2011/10/11
- Re: [Qemu-devel] [PATCH 0/6] block: do request processing in a coroutine, Kevin Wolf, 2011/10/12