diff options
Diffstat (limited to 'drivers/scsi/ipr.c')
-rw-r--r-- | drivers/scsi/ipr.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/scsi/ipr.c b/drivers/scsi/ipr.c index 6411c458d336..072f57715658 100644 --- a/drivers/scsi/ipr.c +++ b/drivers/scsi/ipr.c | |||
@@ -3928,6 +3928,13 @@ static int __ipr_eh_dev_reset(struct scsi_cmnd * scsi_cmd) | |||
3928 | spin_unlock_irq(scsi_cmd->device->host->host_lock); | 3928 | spin_unlock_irq(scsi_cmd->device->host->host_lock); |
3929 | ata_do_eh(ap, NULL, NULL, ipr_sata_reset, NULL); | 3929 | ata_do_eh(ap, NULL, NULL, ipr_sata_reset, NULL); |
3930 | spin_lock_irq(scsi_cmd->device->host->host_lock); | 3930 | spin_lock_irq(scsi_cmd->device->host->host_lock); |
3931 | |||
3932 | list_for_each_entry(ipr_cmd, &ioa_cfg->pending_q, queue) { | ||
3933 | if (ipr_cmd->ioarcb.res_handle == res->cfgte.res_handle) { | ||
3934 | rc = -EIO; | ||
3935 | break; | ||
3936 | } | ||
3937 | } | ||
3931 | } else | 3938 | } else |
3932 | rc = ipr_device_reset(ioa_cfg, res); | 3939 | rc = ipr_device_reset(ioa_cfg, res); |
3933 | res->resetting_device = 0; | 3940 | res->resetting_device = 0; |