summary refs log tree commit diff stats
path: root/hw/virtio-blk.c
diff options
context:
space:
mode:
authorLuiz Capitulino <lcapitulino@redhat.com>2010-02-03 12:41:04 -0200
committerAnthony Liguori <aliguori@us.ibm.com>2010-02-10 11:57:03 -0600
commiteaa6c85f5df022e65a3c5c14908cd191430cbff5 (patch)
treea1a76694b0c55f17f637a77709edd68f3d5984c0 /hw/virtio-blk.c
parent380f640f96c8ae5b257bd4dec9b27cecd9d7e683 (diff)
downloadfocaccia-qemu-eaa6c85f5df022e65a3c5c14908cd191430cbff5.tar.gz
focaccia-qemu-eaa6c85f5df022e65a3c5c14908cd191430cbff5.zip
virtio-blk: Generate BLOCK_IO_ERROR QMP event
Just call bdrv_mon_event() in the right place.

Signed-off-by: Luiz Capitulino <lcapitulino@redhat.com>
Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>
Diffstat (limited to 'hw/virtio-blk.c')
-rw-r--r--hw/virtio-blk.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/hw/virtio-blk.c b/hw/virtio-blk.c
index 037a79c5ff..75adbec07a 100644
--- a/hw/virtio-blk.c
+++ b/hw/virtio-blk.c
@@ -105,16 +105,20 @@ static int virtio_blk_handle_rw_error(VirtIOBlockReq *req, int error,
         drive_get_on_error(req->dev->bs, is_read);
     VirtIOBlock *s = req->dev;
 
-    if (action == BLOCK_ERR_IGNORE)
+    if (action == BLOCK_ERR_IGNORE) {
+        bdrv_mon_event(req->dev->bs, BDRV_ACTION_IGNORE, is_read);
         return 0;
+    }
 
     if ((error == ENOSPC && action == BLOCK_ERR_STOP_ENOSPC)
             || action == BLOCK_ERR_STOP_ANY) {
         req->next = s->rq;
         s->rq = req;
         vm_stop(0);
+        bdrv_mon_event(req->dev->bs, BDRV_ACTION_STOP, is_read);
     } else {
         virtio_blk_req_complete(req, VIRTIO_BLK_S_IOERR);
+        bdrv_mon_event(req->dev->bs, BDRV_ACTION_REPORT, is_read);
     }
 
     return 1;