Conversion to coroutines simplifies the code and removes the need to duplicate common features of the block layer. Each step in the conversion is detailed in the corresponding commit message.
Tested with qemu-iotests. Paolo Bonzini (7): vdi: basic conversion to coroutines vdi: move end-of-I/O handling at the end vdi: merge aio_read_cb and aio_write_cb into callers vdi: move aiocb fields to locals vdi: leave bounce buffering to block layer vdi: do not create useless iovecs vdi: change goto to loop block/vdi.c | 421 +++++++++++++------------------------------------- 2 files changed, 108 insertions(+), 317 deletions(-) -- 1.7.7.6