diff options
author | Jeff Skirvin <jeffrey.d.skirvin@intel.com> | 2011-09-28 21:47:46 -0400 |
---|---|---|
committer | James Bottomley <JBottomley@Parallels.com> | 2011-10-02 14:21:24 -0400 |
commit | cd06b9bae18c64658d5a86526fb19cfe0ea8814f (patch) | |
tree | ef755cca6da001bf2972acb7f649bb6bf995e922 | |
parent | b50102d3e9a43a75379407c2080f696f61cb286b (diff) |
[SCSI] isci: SATA/STP I/O is only returned in the normal path to libsas
Since libsas has it's own means to escalate SATA/STP device error
handling depending on task status codes, return all SATA/STP I/O
on the normal path.
i.e. skip sas_task_abort() and let sas_ata_task_done() disposition the
qc. Longer term we want to audit non-essential calls to
sas_task_abort().
Signed-off-by: Jeff Skirvin <jeffrey.d.skirvin@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
-rw-r--r-- | drivers/scsi/isci/task.h | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/drivers/scsi/isci/task.h b/drivers/scsi/isci/task.h index 4a7fa90287ef..15b18d158993 100644 --- a/drivers/scsi/isci/task.h +++ b/drivers/scsi/isci/task.h | |||
@@ -286,6 +286,25 @@ isci_task_set_completion_status( | |||
286 | task->task_status.resp = response; | 286 | task->task_status.resp = response; |
287 | task->task_status.stat = status; | 287 | task->task_status.stat = status; |
288 | 288 | ||
289 | switch (task->task_proto) { | ||
290 | |||
291 | case SAS_PROTOCOL_SATA: | ||
292 | case SAS_PROTOCOL_STP: | ||
293 | case SAS_PROTOCOL_SATA | SAS_PROTOCOL_STP: | ||
294 | |||
295 | if (task_notification_selection | ||
296 | == isci_perform_error_io_completion) { | ||
297 | /* SATA/STP I/O has it's own means of scheduling device | ||
298 | * error handling on the normal path. | ||
299 | */ | ||
300 | task_notification_selection | ||
301 | = isci_perform_normal_io_completion; | ||
302 | } | ||
303 | break; | ||
304 | default: | ||
305 | break; | ||
306 | } | ||
307 | |||
289 | switch (task_notification_selection) { | 308 | switch (task_notification_selection) { |
290 | 309 | ||
291 | case isci_perform_error_io_completion: | 310 | case isci_perform_error_io_completion: |