|
@@ -395,6 +395,7 @@ static int idescsi_end_request (ide_drive_t *drive, int uptodate, int nrsecs)
|
|
int log = test_bit(IDESCSI_LOG_CMD, &scsi->log);
|
|
int log = test_bit(IDESCSI_LOG_CMD, &scsi->log);
|
|
struct Scsi_Host *host;
|
|
struct Scsi_Host *host;
|
|
u8 *scsi_buf;
|
|
u8 *scsi_buf;
|
|
|
|
+ int errors = rq->errors;
|
|
unsigned long flags;
|
|
unsigned long flags;
|
|
|
|
|
|
if (!(rq->flags & (REQ_SPECIAL|REQ_SENSE))) {
|
|
if (!(rq->flags & (REQ_SPECIAL|REQ_SENSE))) {
|
|
@@ -421,11 +422,11 @@ static int idescsi_end_request (ide_drive_t *drive, int uptodate, int nrsecs)
|
|
printk (KERN_WARNING "ide-scsi: %s: timed out for %lu\n",
|
|
printk (KERN_WARNING "ide-scsi: %s: timed out for %lu\n",
|
|
drive->name, pc->scsi_cmd->serial_number);
|
|
drive->name, pc->scsi_cmd->serial_number);
|
|
pc->scsi_cmd->result = DID_TIME_OUT << 16;
|
|
pc->scsi_cmd->result = DID_TIME_OUT << 16;
|
|
- } else if (rq->errors >= ERROR_MAX) {
|
|
|
|
|
|
+ } else if (errors >= ERROR_MAX) {
|
|
pc->scsi_cmd->result = DID_ERROR << 16;
|
|
pc->scsi_cmd->result = DID_ERROR << 16;
|
|
if (log)
|
|
if (log)
|
|
printk ("ide-scsi: %s: I/O error for %lu\n", drive->name, pc->scsi_cmd->serial_number);
|
|
printk ("ide-scsi: %s: I/O error for %lu\n", drive->name, pc->scsi_cmd->serial_number);
|
|
- } else if (rq->errors) {
|
|
|
|
|
|
+ } else if (errors) {
|
|
if (log)
|
|
if (log)
|
|
printk ("ide-scsi: %s: check condition for %lu\n", drive->name, pc->scsi_cmd->serial_number);
|
|
printk ("ide-scsi: %s: check condition for %lu\n", drive->name, pc->scsi_cmd->serial_number);
|
|
if (!idescsi_check_condition(drive, rq))
|
|
if (!idescsi_check_condition(drive, rq))
|