From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([140.186.70.92]:36544) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RGXcq-0002gY-2a for qemu-devel@nongnu.org; Wed, 19 Oct 2011 11:00:17 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1RGXco-0006FX-F2 for qemu-devel@nongnu.org; Wed, 19 Oct 2011 11:00:11 -0400 Received: from mail-pz0-f43.google.com ([209.85.210.43]:61286) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1RGXco-0006FE-1y for qemu-devel@nongnu.org; Wed, 19 Oct 2011 11:00:10 -0400 Received: by pzk33 with SMTP id 33so4553085pzk.2 for ; Wed, 19 Oct 2011 08:00:09 -0700 (PDT) Sender: Paolo Bonzini From: Paolo Bonzini Date: Wed, 19 Oct 2011 16:59:50 +0200 Message-Id: <1319036398-14320-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PATCH 0/8] finish coroutinization of drivers List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kwolf@redhat.com, stefanha@linux.vnet.ibm.com 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