summaryrefslogtreecommitdiffstats
path: root/drivers/scsi/isci/request.c
diff options
context:
space:
mode:
authorDan Williams2011-11-18 02:59:50 +0100
committerJames Bottomley2012-02-19 20:50:12 +0100
commit312d3e56119a4bc5c36a96818f87f650c069ddc2 (patch)
treed8cf7586656301ff1c4e5a49f9cbddde61e3e561 /drivers/scsi/isci/request.c
parent[SCSI] libsas: introduce sas_drain_work() (diff)
downloadkernel-qcow2-linux-312d3e56119a4bc5c36a96818f87f650c069ddc2.tar.gz
kernel-qcow2-linux-312d3e56119a4bc5c36a96818f87f650c069ddc2.tar.xz
kernel-qcow2-linux-312d3e56119a4bc5c36a96818f87f650c069ddc2.zip
[SCSI] libsas: remove ata_port.lock management duties from lldds
Each libsas driver (mvsas, pm8001, and isci) has invented a different method for managing the ap->lock. The lock is held by the ata ->queuecommand() path. mvsas drops it prior to acquiring any internal locks which allows it to hold its internal lock across calls to task->task_done(). This capability is important as it is the only way the driver can flush task->task_done() instances to guarantee that it no longer has any in-flight references to a domain_device at ->lldd_dev_gone() time. Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: James Bottomley <JBottomley@Parallels.com>
Diffstat (limited to 'drivers/scsi/isci/request.c')
-rw-r--r--drivers/scsi/isci/request.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/scsi/isci/request.c b/drivers/scsi/isci/request.c
index 751368b46b44..788daeedc89f 100644
--- a/drivers/scsi/isci/request.c
+++ b/drivers/scsi/isci/request.c
@@ -3796,8 +3796,7 @@ int isci_request_execute(struct isci_host *ihost, struct isci_remote_device *ide
/* Cause this task to be scheduled in the SCSI error
* handler thread.
*/
- isci_execpath_callback(ihost, task,
- sas_task_abort);
+ sas_task_abort(task);
/* Change the status, since we are holding
* the I/O until it is managed by the SCSI