[SCSI] libsas: remove ata_port.lock management duties from lldds
authorDan Williams <dan.j.williams@intel.com>
Fri, 18 Nov 2011 01:59:50 +0000 (17:59 -0800)
committerJames Bottomley <JBottomley@Parallels.com>
Sun, 19 Feb 2012 19:50:12 +0000 (13:50 -0600)
commit312d3e56119a4bc5c36a96818f87f650c069ddc2
treed8cf7586656301ff1c4e5a49f9cbddde61e3e561
parentb1124cd3ec97406c767b90bf7e93ecd2d2915592
[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>
drivers/scsi/isci/request.c
drivers/scsi/isci/task.c
drivers/scsi/isci/task.h
drivers/scsi/libsas/sas_ata.c
drivers/scsi/libsas/sas_scsi_host.c
drivers/scsi/mvsas/mv_sas.c
drivers/scsi/pm8001/pm8001_sas.c