diff options
Diffstat (limited to 'drivers')
| -rw-r--r-- | drivers/ata/libata-eh.c | 2 | ||||
| -rw-r--r-- | drivers/scsi/scsi_error.c | 4 |
2 files changed, 4 insertions, 2 deletions
diff --git a/drivers/ata/libata-eh.c b/drivers/ata/libata-eh.c index 961acc788f44..91a9e6af2ec4 100644 --- a/drivers/ata/libata-eh.c +++ b/drivers/ata/libata-eh.c | |||
| @@ -606,7 +606,7 @@ void ata_scsi_error(struct Scsi_Host *host) | |||
| 606 | ata_scsi_port_error_handler(host, ap); | 606 | ata_scsi_port_error_handler(host, ap); |
| 607 | 607 | ||
| 608 | /* finish or retry handled scmd's and clean up */ | 608 | /* finish or retry handled scmd's and clean up */ |
| 609 | WARN_ON(host->host_failed || !list_empty(&eh_work_q)); | 609 | WARN_ON(!list_empty(&eh_work_q)); |
| 610 | 610 | ||
| 611 | DPRINTK("EXIT\n"); | 611 | DPRINTK("EXIT\n"); |
| 612 | } | 612 | } |
diff --git a/drivers/scsi/scsi_error.c b/drivers/scsi/scsi_error.c index 984ddcb4786d..1b9c049bd5c5 100644 --- a/drivers/scsi/scsi_error.c +++ b/drivers/scsi/scsi_error.c | |||
| @@ -1127,7 +1127,6 @@ static int scsi_eh_action(struct scsi_cmnd *scmd, int rtn) | |||
| 1127 | */ | 1127 | */ |
| 1128 | void scsi_eh_finish_cmd(struct scsi_cmnd *scmd, struct list_head *done_q) | 1128 | void scsi_eh_finish_cmd(struct scsi_cmnd *scmd, struct list_head *done_q) |
| 1129 | { | 1129 | { |
| 1130 | scmd->device->host->host_failed--; | ||
| 1131 | scmd->eh_eflags = 0; | 1130 | scmd->eh_eflags = 0; |
| 1132 | list_move_tail(&scmd->eh_entry, done_q); | 1131 | list_move_tail(&scmd->eh_entry, done_q); |
| 1133 | } | 1132 | } |
| @@ -2226,6 +2225,9 @@ int scsi_error_handler(void *data) | |||
| 2226 | else | 2225 | else |
| 2227 | scsi_unjam_host(shost); | 2226 | scsi_unjam_host(shost); |
| 2228 | 2227 | ||
| 2228 | /* All scmds have been handled */ | ||
| 2229 | shost->host_failed = 0; | ||
| 2230 | |||
| 2229 | /* | 2231 | /* |
| 2230 | * Note - if the above fails completely, the action is to take | 2232 | * Note - if the above fails completely, the action is to take |
| 2231 | * individual devices offline and flush the queue of any | 2233 | * individual devices offline and flush the queue of any |
