From patchwork Tue Jan 11 10:59:49 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [14/19] block: insert event-tap to bdrv_aio_writev() and bdrv_aio_flush(). From: Yoshiaki Tamura X-Patchwork-Id: 78328 Message-Id: <1294743594-19193-15-git-send-email-tamura.yoshiaki@lab.ntt.co.jp> To: kvm@vger.kernel.org, qemu-devel@nongnu.org Cc: kwolf@redhat.com, aliguori@us.ibm.com, mtosatti@redhat.com, ananth@in.ibm.com, mst@redhat.com, dlaor@redhat.com, vatsa@linux.vnet.ibm.com, Yoshiaki Tamura , ohmura.kei@lab.ntt.co.jp, avi@redhat.com, psuriset@linux.vnet.ibm.com, stefanha@linux.vnet.ibm.com Date: Tue, 11 Jan 2011 19:59:49 +0900 event-tap function is called only when it is on, and requests sent from device emulators. Signed-off-by: Yoshiaki Tamura --- block.c | 11 +++++++++++ 1 files changed, 11 insertions(+), 0 deletions(-) diff --git a/block.c b/block.c index ff2795b..85bd8b8 100644 --- a/block.c +++ b/block.c @@ -28,6 +28,7 @@ #include "block_int.h" #include "module.h" #include "qemu-objects.h" +#include "event-tap.h" #ifdef CONFIG_BSD #include @@ -2111,6 +2112,11 @@ BlockDriverAIOCB *bdrv_aio_writev(BlockDriverState *bs, int64_t sector_num, if (bdrv_check_request(bs, sector_num, nb_sectors)) return NULL; + if (bs->device_name && event_tap_is_on()) { + return event_tap_bdrv_aio_writev(bs, sector_num, qiov, nb_sectors, + cb, opaque); + } + if (bs->dirty_bitmap) { blk_cb_data = blk_dirty_cb_alloc(bs, sector_num, nb_sectors, cb, opaque); @@ -2374,6 +2380,11 @@ BlockDriverAIOCB *bdrv_aio_flush(BlockDriverState *bs, if (!drv) return NULL; + + if (bs->device_name && event_tap_is_on()) { + return event_tap_bdrv_aio_flush(bs, cb, opaque); + } + return drv->bdrv_aio_flush(bs, cb, opaque); }