mirror of https://github.com/xemu-project/xemu.git
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>
This commit is contained in:
parent
380f640f96
commit
eaa6c85f5d
|
@ -105,16 +105,20 @@ static int virtio_blk_handle_rw_error(VirtIOBlockReq *req, int error,
|
||||||
drive_get_on_error(req->dev->bs, is_read);
|
drive_get_on_error(req->dev->bs, is_read);
|
||||||
VirtIOBlock *s = req->dev;
|
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;
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
if ((error == ENOSPC && action == BLOCK_ERR_STOP_ENOSPC)
|
if ((error == ENOSPC && action == BLOCK_ERR_STOP_ENOSPC)
|
||||||
|| action == BLOCK_ERR_STOP_ANY) {
|
|| action == BLOCK_ERR_STOP_ANY) {
|
||||||
req->next = s->rq;
|
req->next = s->rq;
|
||||||
s->rq = req;
|
s->rq = req;
|
||||||
vm_stop(0);
|
vm_stop(0);
|
||||||
|
bdrv_mon_event(req->dev->bs, BDRV_ACTION_STOP, is_read);
|
||||||
} else {
|
} else {
|
||||||
virtio_blk_req_complete(req, VIRTIO_BLK_S_IOERR);
|
virtio_blk_req_complete(req, VIRTIO_BLK_S_IOERR);
|
||||||
|
bdrv_mon_event(req->dev->bs, BDRV_ACTION_REPORT, is_read);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
Loading…
Reference in New Issue