mirror of https://gitee.com/openkylin/qemu.git
ide: 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
2582bfedd2
commit
7ad7e3c3bf
|
@ -480,14 +480,17 @@ static int ide_handle_rw_error(IDEState *s, int error, int op)
|
||||||
int is_read = (op & BM_STATUS_RETRY_READ);
|
int is_read = (op & BM_STATUS_RETRY_READ);
|
||||||
BlockInterfaceErrorAction action = drive_get_on_error(s->bs, is_read);
|
BlockInterfaceErrorAction action = drive_get_on_error(s->bs, is_read);
|
||||||
|
|
||||||
if (action == BLOCK_ERR_IGNORE)
|
if (action == BLOCK_ERR_IGNORE) {
|
||||||
|
bdrv_mon_event(s->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) {
|
||||||
s->bus->bmdma->unit = s->unit;
|
s->bus->bmdma->unit = s->unit;
|
||||||
s->bus->bmdma->status |= op;
|
s->bus->bmdma->status |= op;
|
||||||
vm_stop(0);
|
vm_stop(0);
|
||||||
|
bdrv_mon_event(s->bs, BDRV_ACTION_STOP, is_read);
|
||||||
} else {
|
} else {
|
||||||
if (op & BM_STATUS_DMA_RETRY) {
|
if (op & BM_STATUS_DMA_RETRY) {
|
||||||
dma_buf_commit(s, 0);
|
dma_buf_commit(s, 0);
|
||||||
|
@ -495,6 +498,7 @@ static int ide_handle_rw_error(IDEState *s, int error, int op)
|
||||||
} else {
|
} else {
|
||||||
ide_rw_error(s);
|
ide_rw_error(s);
|
||||||
}
|
}
|
||||||
|
bdrv_mon_event(s->bs, BDRV_ACTION_REPORT, is_read);
|
||||||
}
|
}
|
||||||
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
Loading…
Reference in New Issue