summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorDan Williams <dan.j.williams@intel.com>2011-11-29 12:08:50 -0800
committerJames Bottomley <JBottomley@Parallels.com>2012-02-19 14:07:15 -0600
commit3944f50995f947558c35fb16ae0288354756762c (patch)
tree59100b5e0a6aaef675bab78a31838356a3554a95 /include
parent9095a64a9aead653df320e3a6fc70835c15d46e4 (diff)
downloadop-kernel-dev-3944f50995f947558c35fb16ae0288354756762c.zip
op-kernel-dev-3944f50995f947558c35fb16ae0288354756762c.tar.gz
[SCSI] libsas: let libata handle command timeouts
libsas-eh if it successfully aborts an ata command will hide the timeout condition (AC_ERR_TIMEOUT) from libata. The command likely completes with the all-zero task->task_status it started with. Instead, interpret a TMF_RESP_FUNC_COMPLETE as the end of the sas_task but keep the scmd around for libata-eh to handle. Tested-by: Andrzej Jakowski <andrzej.jakowski@intel.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'include')
-rw-r--r--include/scsi/libsas.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h
index aa7192f..6b80310 100644
--- a/include/scsi/libsas.h
+++ b/include/scsi/libsas.h
@@ -382,7 +382,8 @@ struct sas_ha_struct {
void *lldd_ha; /* not touched by sas class code */
- struct list_head eh_done_q;
+ struct list_head eh_done_q; /* complete via scsi_eh_flush_done_q */
+ struct list_head eh_ata_q; /* scmds to promote from sas to ata eh */
};
#define SHOST_TO_SAS_HA(_shost) (*(struct sas_ha_struct **)(_shost)->hostdata)
OpenPOWER on IntegriCloud