linux/include/scsi
Dan Williams 87c8331fcf [SCSI] libsas: prevent domain rediscovery competing with ata error handling
libata error handling provides for a timeout for link recovery.  libsas
must not rescan for previously known devices in this interval otherwise
it may remove a device that is simply waiting for its link to recover.
Let libata-eh make the determination of when the link is stable and
prevent libsas (host workqueue) from taking action while this
determination is pending.

Using a mutex (ha->disco_mutex) to flush and disable revalidation while
eh is running requires any discovery action that may block on eh be
moved to its own context outside the lock.  Probing ATA devices
explicitly waits on ata-eh and the cache-flush-io issued during device
removal may also pend awaiting eh completion.  Essentially any rphy
add/remove activity needs to run outside the lock.

This adds two new cleanup states for sas_unregister_domain_devices()
'allocated-but-not-probed', and 'flagged-for-destruction'.  In the
'allocated-but-not-probed' state  dev->rphy points to a rphy that is
known to have not been through a sas_rphy_add() event.  At domain
teardown check if this device is still pending probe and cleanup
accordingly.  Similarly if a device has already been queued for removal
then sas_unregister_domain_devices has nothing to do.

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2012-02-19 13:52:34 -06:00
..
fc [SCSI] libfc: Add support for FDMI 2012-02-19 08:08:58 -06:00
fc_encode.h [SCSI] libfc: Add support for FDMI 2012-02-19 08:08:58 -06:00
fc_frame.h [SCSI] fcoe: remove unused ptype field in fcoe_rcv_info 2011-07-28 12:08:55 +04:00
iscsi_if.h [SCSI] iscsi_transport: Added Ping support 2012-02-19 09:34:50 -06:00
iscsi_proto.h iscsi: Add Serial Number Arithmetic LT and GT into iscsi_proto.h 2011-07-25 07:48:08 +00:00
Kbuild
libfc.h [SCSI] libfc: Add support for FDMI 2012-02-19 08:08:58 -06:00
libfcoe.h [SCSI] fcoe: fix fcoe in a DCB environment by adding DCB notifiers to set skb priority 2011-12-15 11:02:07 +04:00
libiscsi_tcp.h [SCSI] libiscsi_tcp: fix max_r2t manipulation 2012-02-19 08:09:00 -06:00
libiscsi.h [SCSI] libiscsi_tcp: fix max_r2t manipulation 2012-02-19 08:09:00 -06:00
libsas.h [SCSI] libsas: prevent domain rediscovery competing with ata error handling 2012-02-19 13:52:34 -06:00
libsrp.h
osd_attributes.h
osd_initiator.h
osd_ore.h ore: RAID5 Write 2011-10-24 17:15:33 -07:00
osd_protocol.h
osd_sec.h
osd_sense.h
osd_types.h
sas_ata.h [SCSI] libsas: prevent domain rediscovery competing with ata error handling 2012-02-19 13:52:34 -06:00
sas.h [SCSI] isci: export phy events via ->lldd_control_phy() 2011-10-02 13:24:26 -05:00
scsi_bsg_fc.h
scsi_bsg_iscsi.h [SCSI] iscsi class: add bsg support to iscsi class 2011-08-27 08:36:21 -06:00
scsi_cmnd.h [SCSI] Handle disk devices which can not process medium access commands 2012-02-19 10:14:52 -06:00
scsi_dbg.h
scsi_device.h [SCSI] scsi_dh: code cleanup and remove the references to scsi_dev_info 2011-12-15 10:55:00 +04:00
scsi_devinfo.h
scsi_dh.h
scsi_driver.h [SCSI] Handle disk devices which can not process medium access commands 2012-02-19 10:14:52 -06:00
scsi_eh.h
scsi_host.h [SCSI] add flag to skip the runtime PM calls on the host 2012-01-08 19:14:57 -05:00
scsi_ioctl.h
scsi_netlink_fc.h
scsi_netlink.h
scsi_scan.h
scsi_tcq.h
scsi_tgt_if.h
scsi_tgt.h
scsi_transport_fc.h [SCSI] scsi_transport_fc: Getting FC Port Speed in sync with FC-GS 2012-02-19 08:08:57 -06:00
scsi_transport_iscsi.h [SCSI] iscsi_transport: Added Ping support 2012-02-19 09:34:50 -06:00
scsi_transport_sas.h [SCSI] libsas: prevent domain rediscovery competing with ata error handling 2012-02-19 13:52:34 -06:00
scsi_transport_spi.h
scsi_transport_srp.h
scsi_transport.h
scsi.h
scsicam.h
sg.h
srp.h