CD-ROM: Report image backend I/O errors as media CRC errors to the drive

This commit is contained in:
RichardG867
2024-10-27 13:17:55 -03:00
parent 31beadd103
commit aeaaa09b16
8 changed files with 75 additions and 39 deletions

View File

@@ -1244,6 +1244,15 @@ scsi_cdrom_not_ready(scsi_cdrom_t *dev)
scsi_cdrom_cmd_error(dev);
}
static void
scsi_cdrom_circ_error(scsi_cdrom_t *dev)
{
scsi_cdrom_sense_key = SENSE_MEDIUM_ERROR;
scsi_cdrom_asc = ASC_UNRECOVERED_READ_ERROR;
scsi_cdrom_ascq = ASCQ_CIRC_UNRECOVERED_ERROR;
scsi_cdrom_cmd_error(dev);
}
static void
scsi_cdrom_invalid_lun(scsi_cdrom_t *dev)
{
@@ -1367,6 +1376,10 @@ scsi_cdrom_read_data(scsi_cdrom_t *dev, int msf, int type, int flags, int32_t *l
if (!ret) {
scsi_cdrom_illegal_mode(dev);
return 0;
} else if (ret < 0) {
pclog("we have a circ\n");
scsi_cdrom_circ_error(dev);
return -1;
}
}