[SCSI] libsas: Delay issuing ABORT TASK TMF until the error handler
authorDarrick J. Wong <djwong@us.ibm.com>
Thu, 11 Jan 2007 22:15:20 +0000 (14:15 -0800)
committerJames Bottomley <jejb@mulgrave.il.steeleye.com>
Sat, 13 Jan 2007 22:18:06 +0000 (16:18 -0600)
commit396819fba821ad56f1b90090d256f0ab726c89c5
tree085d65ae13854d42fdf34fdb430aae76e696dbc4
parent3ebf6922b0833807e54c73f4794c74baf9945fc8
[SCSI] libsas: Delay issuing ABORT TASK TMF until the error handler

sas_task_abort() should simply abort the upper-level SCSI command and wait
until the error handler to send the actual ABORT TASK command.  By
deferring things to the EH we simplify the concurrency coordination and
eliminate some race conditions.  Note that sas_task_abort has a few hooks
to handle libsas internal commands properly too.

Also rename do_sas_task_abort to __sas_task_abort just in case we really
want to abort the task *right now* and we don't have a scsi_cmnd attached
to the command.  This is a hook for libata internal commands to abort.

Signed-off-by: Darrick J. Wong <djwong@us.ibm.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
drivers/scsi/libsas/sas_scsi_host.c
include/scsi/libsas.h