Hi, This series is about converting all the bdrv_aio* implementations in gluster driver to coroutine based implementations. Read, write, flush and discard routines are converted.
This also adds support for .bdrv_co_write_zeroes() in gluster and provides a new preallocation option with qemu-img (-o preallocation=full) that can be used for raw images on GlusterFS backend to create fully allocated and zero-filled images. Changes in v2 ------------- - Don't use QEMU's AIO infrastructure (BlockDriverAIOCB, qemu_aio_get/release) at all, instead manage the request structure completely within gluster driver. - Minor code cleanups. Changes in v1 ------------- - Removed qemu_gluster_aio_cancel() and associated code. - Calling qemu_aio_release() from where aiocb is created. - s/qemu_gluster_aio_rw/qemu_gluster_co_rw. - Use errno appropriately from read, write, flush, discard and zerofill routines in gluster driver. - Fix a memory leak in qemu_gluster_create(). - Proceed with glfs_zerofill() only if glfs_ftruncate() succeeds in qemu_gluster_create(). Bharata B Rao (3): gluster: Convert aio routines into coroutines gluster: Implement .bdrv_co_write_zeroes for gluster gluster: Add support for creating zero-filled image block/gluster.c | 318 +++++++++++++++++++++++++++++--------------------------- configure | 8 ++ 2 files changed, 175 insertions(+), 151 deletions(-) -- 1.7.11.7