isci: kill isci_remote_device_change_state()
authorDan Williams <dan.j.williams@intel.com>
Thu, 16 Jun 2011 18:26:12 +0000 (11:26 -0700)
committerDan Williams <dan.j.williams@intel.com>
Sun, 3 Jul 2011 11:04:51 +0000 (04:04 -0700)
commitf2088267514b39af1a94409168101527769a911c
tree9155ce7eb3edf40ecdabc690bff34622ecea1294
parent209fae14fabfd48525e5630bebbbd4ca15090c60
isci: kill isci_remote_device_change_state()

Now that "stopping/stopped" are one in the same and signalled by a NULL device
pointer the rest of the device status infrastructure can be removed (->status
and ->state_lock).  The "not ready for i/o state" is replaced with a state
flag, and is evaluated under scic_lock so that we don't see transients from
taking the device reference to submitting the i/o.

This also fixes a potential leakage of can_queue slots in the rare case that
SAS_TASK_ABORTED is set at submission.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
drivers/scsi/isci/host.c
drivers/scsi/isci/remote_device.c
drivers/scsi/isci/remote_device.h
drivers/scsi/isci/task.c