Drivers that only implement the bdrv_read and bdrv_write callbacks were unwillingly converted to be reentrant when bdrv_read and bdrv_write were changed to always create coroutines. So, we need locks aroudn read and write operations.
This series does this (patches 4-6) and removes the flush/discard callbacks that, as it turns out, are really duplicates of co_flush and co_discard (patches 7-8). Patches 1-3 are fixes/cleanups that I discovered while testing. Paolo Bonzini (8): vpc: detect floppy disk geometries vmdk: fix return values of vmdk_parent_open vmdk: clean up open block: add a Rwlock to synchronous read/write drivers block: take lock around bdrv_read implementations block: take lock around bdrv_write implementations block: change flush to co_flush block: change discard to co_discard block.c | 4 --- block/cow.c | 34 +++++++++++++++++++--- block/nbd.c | 28 +++++++++++++++++- block/qcow.c | 11 +++---- block/qcow2.c | 26 +++++++++++------- block/raw-posix.c | 4 +- block/raw-win32.c | 4 +- block/rbd.c | 4 +- block/vdi.c | 6 ++-- block/vmdk.c | 78 ++++++++++++++++++++++++++++++++-------------------- block/vpc.c | 42 +++++++++++++++++++++++++--- block/vvfat.c | 28 +++++++++++++++++- block_int.h | 3 -- 13 files changed, 196 insertions(+), 76 deletions(-) -- 1.7.6