summaryrefslogtreecommitdiffstats
path: root/include/scsi/libsas.h
diff options
context:
space:
mode:
authorDarrick J. Wong <djwong@us.ibm.com>2006-10-31 00:18:39 +0100
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>2006-11-15 19:14:16 +0100
commitf456393e195e0aa16029985f63cd93b601a0d315 (patch)
treedc4b9d4c0705d5fe2d94669b1a75053f52755cb7 /include/scsi/libsas.h
parent[SCSI] Reduce polling in sd.c (diff)
downloadlinux-f456393e195e0aa16029985f63cd93b601a0d315.tar.xz
linux-f456393e195e0aa16029985f63cd93b601a0d315.zip
[SCSI] libsas: modify error handler to use scsi_eh_* functions
This patch adds an EH done queue to sas_ha, converts the error handling strategy function and the sas_scsi_task_done functions in libsas to use the scsi_eh_* commands for error'd commands, and adds checks for the INITIATOR_ABORTED flag so that we do the right thing if a sas_task has been aborted by the initiator. Signed-off-by: Darrick J. Wong <djwong@us.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'include/scsi/libsas.h')
-rw-r--r--include/scsi/libsas.h9
1 files changed, 6 insertions, 3 deletions
diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h
index 9582e8401669..7bf2e8b9903c 100644
--- a/include/scsi/libsas.h
+++ b/include/scsi/libsas.h
@@ -338,6 +338,8 @@ struct sas_ha_struct {
void (*notify_phy_event)(struct asd_sas_phy *, enum phy_event);
void *lldd_ha; /* not touched by sas class code */
+
+ struct list_head eh_done_q;
};
#define SHOST_TO_SAS_HA(_shost) (*(struct sas_ha_struct **)(_shost)->hostdata)
@@ -530,9 +532,10 @@ struct sas_task {
-#define SAS_TASK_STATE_PENDING 1
-#define SAS_TASK_STATE_DONE 2
-#define SAS_TASK_STATE_ABORTED 4
+#define SAS_TASK_STATE_PENDING 1
+#define SAS_TASK_STATE_DONE 2
+#define SAS_TASK_STATE_ABORTED 4
+#define SAS_TASK_INITIATOR_ABORTED 8
static inline struct sas_task *sas_alloc_task(gfp_t flags)
{