aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libsas/sas_scsi_host.c
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2011-11-29 17:54:28 -0500
committerJames Bottomley <JBottomley@Parallels.com>2012-02-19 15:09:02 -0500
commit3a2cdf391b62919d3d2862cdce3d70b9a7a99673 (patch)
tree8064bea5987445b88b074c02cf65cc5ac1b2ce98 /drivers/scsi/libsas/sas_scsi_host.c
parent3944f50995f947558c35fb16ae0288354756762c (diff)
[SCSI] libsas: defer SAS_TASK_NEED_DEV_RESET commands to libata
lldds use the SAS_TASK_NEED_DEV_RESET interface to request that eh perform a reset. In the sata device case defer the commands that triggered the reset to libata-eh context so it can perform its pre and post reset management. In the sas_ata_post_internal() case the reset request is falling on deaf ears as the sas_task is immediately destroyed without any reset action. Since it is currently a nop, and likely superfluous given the conversion to new-style libata-eh, just drop the request. Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/libsas/sas_scsi_host.c')
-rw-r--r--drivers/scsi/libsas/sas_scsi_host.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/scsi/libsas/sas_scsi_host.c b/drivers/scsi/libsas/sas_scsi_host.c
index e02ca3d570f5..af71a6d0edae 100644
--- a/drivers/scsi/libsas/sas_scsi_host.c
+++ b/drivers/scsi/libsas/sas_scsi_host.c
@@ -288,7 +288,7 @@ static void sas_scsi_clear_queue_lu(struct list_head *error_q, struct scsi_cmnd
288 list_for_each_entry_safe(cmd, n, error_q, eh_entry) { 288 list_for_each_entry_safe(cmd, n, error_q, eh_entry) {
289 if (cmd->device->sdev_target == my_cmd->device->sdev_target && 289 if (cmd->device->sdev_target == my_cmd->device->sdev_target &&
290 cmd->device->lun == my_cmd->device->lun) 290 cmd->device->lun == my_cmd->device->lun)
291 sas_eh_finish_cmd(cmd); 291 sas_eh_defer_cmd(cmd);
292 } 292 }
293} 293}
294 294
@@ -594,7 +594,7 @@ Again:
594 "recovered\n", 594 "recovered\n",
595 SAS_ADDR(task->dev), 595 SAS_ADDR(task->dev),
596 cmd->device->lun); 596 cmd->device->lun);
597 sas_eh_finish_cmd(cmd); 597 sas_eh_defer_cmd(cmd);
598 sas_scsi_clear_queue_lu(work_q, cmd); 598 sas_scsi_clear_queue_lu(work_q, cmd);
599 goto Again; 599 goto Again;
600 } 600 }