Revision 7ad7e3c3
b/hw/ide/core.c | ||
---|---|---|
480 | 480 |
int is_read = (op & BM_STATUS_RETRY_READ); |
481 | 481 |
BlockInterfaceErrorAction action = drive_get_on_error(s->bs, is_read); |
482 | 482 |
|
483 |
if (action == BLOCK_ERR_IGNORE) |
|
483 |
if (action == BLOCK_ERR_IGNORE) { |
|
484 |
bdrv_mon_event(s->bs, BDRV_ACTION_IGNORE, is_read); |
|
484 | 485 |
return 0; |
486 |
} |
|
485 | 487 |
|
486 | 488 |
if ((error == ENOSPC && action == BLOCK_ERR_STOP_ENOSPC) |
487 | 489 |
|| action == BLOCK_ERR_STOP_ANY) { |
488 | 490 |
s->bus->bmdma->unit = s->unit; |
489 | 491 |
s->bus->bmdma->status |= op; |
490 | 492 |
vm_stop(0); |
493 |
bdrv_mon_event(s->bs, BDRV_ACTION_STOP, is_read); |
|
491 | 494 |
} else { |
492 | 495 |
if (op & BM_STATUS_DMA_RETRY) { |
493 | 496 |
dma_buf_commit(s, 0); |
... | ... | |
495 | 498 |
} else { |
496 | 499 |
ide_rw_error(s); |
497 | 500 |
} |
501 |
bdrv_mon_event(s->bs, BDRV_ACTION_REPORT, is_read); |
|
498 | 502 |
} |
499 | 503 |
|
500 | 504 |
return 1; |
Also available in: Unified diff