Still not quite there, but should be a bit more correct than the first RFC. I still need to add proper error handling, the rest of block-queue itself should be fairly complete. With respect to error handling, IDE, virtio-blk and scsi-disk can deal with failed bdrv_(aio_)flush now, so just failing the next flush seems to be a viable option now.
The integration into block.c and qcow2 is only a preliminary hack for now and is going to be replaced. Kevin Wolf (4): block: Fake a bdrv_aio_pwrite Add block-queue Test cases for block-queue qcow2: Use block-queue Makefile | 1 + Makefile.objs | 2 +- block-queue.c | 625 ++++++++++++++++++++++++++++++++++++++++++++++++ block-queue.h | 49 ++++ block.c | 30 +++ block.h | 2 + block/qcow2-cluster.c | 39 ++-- block/qcow2-refcount.c | 62 +++--- block/qcow2.c | 18 ++- block/qcow2.h | 4 + check-block-queue.c | 402 +++++++++++++++++++++++++++++++ 11 files changed, 1182 insertions(+), 52 deletions(-) create mode 100644 block-queue.c create mode 100644 block-queue.h create mode 100644 check-block-queue.c -- 1.7.2.3