WSL2-Linux-Kernel/include/scsi
Dan Williams b1124cd3ec [SCSI] libsas: introduce sas_drain_work()
When an lldd invokes ->notify_port_event() it can trigger a chain of libsas
events to:

  1/ form the port and find the direct attached device

  2/ if the attached device is an expander perform domain discovery

A call to flush_workqueue() will only flush the initial port formation work.
Currently libsas users need to call scsi_flush_work() up to the max depth of
chain (which will grow from 2 to 3 when ata discovery is moved to its own
discovery event).  Instead of open coding multiple calls switch to use
drain_workqueue() to flush sas work.

drain_workqueue() does not handle new work submitted during the drain so
libsas needs a bit of infrastructure to hold off unchained work submissions
while a drain is in flight.  A lldd ->notify() event is considered 'unchained'
while a sas_discover_event() is 'chained'.  As Tejun notes:

  "For now, I think it would be best to add private wrapper in libsas to
   support deferring unchained work items while draining."

Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: James Bottomley <JBottomley@Parallels.com>
2012-02-19 13:48:51 -06:00
..
fc [SCSI] libfc: Add support for FDMI 2012-02-19 08:08:58 -06:00
Kbuild [SCSI] Unexport scsi/scsi.h from headers_install 2010-05-02 11:45:12 -04: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
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.h [SCSI] libiscsi_tcp: fix max_r2t manipulation 2012-02-19 08:09:00 -06:00
libiscsi_tcp.h [SCSI] libiscsi_tcp: fix max_r2t manipulation 2012-02-19 08:09:00 -06:00
libsas.h [SCSI] libsas: introduce sas_drain_work() 2012-02-19 13:48:51 -06:00
libsrp.h libsrp: fix compile failure 2009-12-30 12:23:27 -08:00
osd_attributes.h [SCSI] libosd: OSD2r05: Attribute definitions 2009-06-10 08:54:07 -05:00
osd_initiator.h treewide: Fix recieve/receive typos 2011-06-24 11:18:57 +02:00
osd_ore.h ore: RAID5 Write 2011-10-24 17:15:33 -07:00
osd_protocol.h [SCSI] libosd: Support for scatter gather write/read commands 2010-10-26 10:42:34 -05:00
osd_sec.h [SCSI] libosd: OSDv1 Headers 2009-03-12 12:58:06 -05:00
osd_sense.h [SCSI] libosd: osd_sense: OSD_CFO_PERMISSIONS 2009-12-04 12:01:44 -06:00
osd_types.h [SCSI] libosd: Support for scatter gather write/read commands 2010-10-26 10:42:34 -05:00
sas.h [SCSI] isci: export phy events via ->lldd_control_phy() 2011-10-02 13:24:26 -05:00
sas_ata.h [SCSI] libsas: fix leak of dev->sata_dev.identify_[packet_]device 2012-02-19 13:39:36 -06:00
scsi.h treewide: fix potentially dangerous trailing ';' in #defined values/expressions 2011-07-21 14:10:00 +02:00
scsi_bsg_fc.h [SCSI] fc-transport: Use packed modifier for fc_bsg_request structure. 2010-01-17 12:36:33 -06:00
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] Fix device not ready printk 2007-10-12 14:51:56 -04:00
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 Merge ../scsi-rc-fixes-2.6 2006-04-14 15:47:45 -05:00
scsi_dh.h [SCSI] scsi_dh: Change the scsidh_activate interface to be asynchronous 2009-12-04 12:00:46 -06:00
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] scsi_eh_prep_cmnd should save scmd->underflow 2008-07-26 15:14:56 -04:00
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 [PATCH] don't mess with file in scsi_nonblockable_ioctl() 2008-10-21 07:47:28 -04:00
scsi_netlink.h scsi: use __uX types for headers exported to user space 2010-08-11 08:59:01 -07:00
scsi_netlink_fc.h [SCSI] SCSI & FC transport: extend event vendor id's to 64bits 2006-09-02 15:35:15 -05:00
scsi_scan.h PM/Hibernate: Wait for SCSI devices scan to complete during resume 2009-04-13 11:37:07 -07:00
scsi_tcq.h [SCSI] target: Convert TASK_ATTR to scsi_tcq.h definitions 2011-05-24 13:03:56 -04:00
scsi_tgt.h [SCSI] tgt: add I_T nexus support 2007-10-12 14:37:50 -04:00
scsi_tgt_if.h [SCSI] tgt: add I_T nexus support 2007-10-12 14:37:50 -04:00
scsi_transport.h block: unify request timeout handling 2008-10-09 08:56:13 +02:00
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] scsi_transport_sas: add support for transport layer retries (TLR) 2010-02-08 17:15:19 -06:00
scsi_transport_spi.h [SCSI] aic79xx: make driver respect nvram for IU and QAS settings 2009-06-15 10:09:35 -05:00
scsi_transport_srp.h [SCSI] tgt: move tsk_mgmt_response callback to transport class 2007-10-12 14:38:01 -04:00
scsicam.h Linux-2.6.12-rc2 2005-04-16 15:20:36 -07:00
sg.h sysctl extern cleanup: sg 2010-03-12 15:53:10 -08:00
srp.h IB/srp: Implement SRP_CRED_REQ and SRP_AER_REQ 2010-10-22 22:19:10 -07:00