mirror of https://gitee.com/openkylin/qemu.git
scsi: 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
7ad7e3c3bf
commit
380f640f96
|
@ -182,16 +182,20 @@ static int scsi_handle_write_error(SCSIDiskReq *r, int error)
|
||||||
BlockInterfaceErrorAction action =
|
BlockInterfaceErrorAction action =
|
||||||
drive_get_on_error(s->qdev.dinfo->bdrv, 0);
|
drive_get_on_error(s->qdev.dinfo->bdrv, 0);
|
||||||
|
|
||||||
if (action == BLOCK_ERR_IGNORE)
|
if (action == BLOCK_ERR_IGNORE) {
|
||||||
|
bdrv_mon_event(s->qdev.dinfo->bdrv, BDRV_ACTION_IGNORE, 0);
|
||||||
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) {
|
||||||
r->status |= SCSI_REQ_STATUS_RETRY;
|
r->status |= SCSI_REQ_STATUS_RETRY;
|
||||||
vm_stop(0);
|
vm_stop(0);
|
||||||
|
bdrv_mon_event(s->qdev.dinfo->bdrv, BDRV_ACTION_STOP, 0);
|
||||||
} else {
|
} else {
|
||||||
scsi_command_complete(r, CHECK_CONDITION,
|
scsi_command_complete(r, CHECK_CONDITION,
|
||||||
HARDWARE_ERROR);
|
HARDWARE_ERROR);
|
||||||
|
bdrv_mon_event(s->qdev.dinfo->bdrv, BDRV_ACTION_REPORT, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
Loading…
Reference in New Issue