diff options
author | Darrick J. Wong <djwong@us.ibm.com> | 2007-01-26 17:08:52 -0500 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2007-01-27 11:06:51 -0500 |
commit | ad689233bee854dced741c91aff12a8771a22f6f (patch) | |
tree | ae1a786c97c779c16d5e10ac17efdb24c72aa5ae /include | |
parent | dca84e4694419adf61ad052b1e5a50ac82726597 (diff) |
[SCSI] libsas: Handle SCSI commands that complete with failure codes
This patch moves the code that handles SAS failures out of the main EH
function and into a separate function. It also detects commands that have
no sas_task (i.e. they completed, but with error data) and sends them into
scsi_error for processing. This allows us to handle SCSI errors (and
enables auto-spinup as a side effect) instead of dropping them on the
floor and falling into an infinite loop. It also requires the
implementation of a device reset function, which the SAS failure code has
been modified to employ for REQ_DEVICE_RESET.
Signed-off-by: Darrick J. Wong <djwong@us.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'include')
-rw-r--r-- | include/scsi/libsas.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/scsi/libsas.h b/include/scsi/libsas.h index ca393929c10b..b200233cc6f4 100644 --- a/include/scsi/libsas.h +++ b/include/scsi/libsas.h | |||
@@ -660,5 +660,6 @@ void sas_init_dev(struct domain_device *); | |||
660 | 660 | ||
661 | void sas_task_abort(struct sas_task *); | 661 | void sas_task_abort(struct sas_task *); |
662 | int __sas_task_abort(struct sas_task *); | 662 | int __sas_task_abort(struct sas_task *); |
663 | int sas_eh_device_reset_handler(struct scsi_cmnd *cmd); | ||
663 | 664 | ||
664 | #endif /* _SASLIB_H_ */ | 665 | #endif /* _SASLIB_H_ */ |