Jason Yan
1c393b970e
scsi: libsas: Use dynamic alloced work to avoid sas event lost
...
Now libsas hotplug work is static, every sas event type has its own
static work, LLDD driver queues the hotplug work into shost->work_q. If
LLDD driver burst posts lots hotplug events to libsas, the hotplug
events may pending in the workqueue like
shost->work_q
new work[PORTE_BYTES_DMAED] --> |[PHYE_LOSS_OF_SIGNAL][PORTE_BYTES_DMAED] -> processing
|<-------wait worker to process-------->|
In this case, a new PORTE_BYTES_DMAED event coming, libsas try to queue
it to shost->work_q, but this work is already pending, so it would be
lost. Finally, libsas delete the related sas port and sas devices, but
LLDD driver expect libsas add the sas port and devices(last sas event).
This patch use dynamic allocated work to avoid this issue.
Signed-off-by: Yijing Wang <wangyijing@huawei.com>
CC: John Garry <john.garry@huawei.com>
CC: Johannes Thumshirn <jthumshirn@suse.de>
CC: Ewan Milne <emilne@redhat.com>
CC: Christoph Hellwig <hch@lst.de>
CC: Tomas Henzl <thenzl@redhat.com>
CC: Dan Williams <dan.j.williams@intel.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Jason Yan <yanaijie@huawei.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
2018-01-08 21:59:28 -05:00
..
fc
uapi: export all headers under uapi directories
2017-05-11 00:21:54 +09:00
fc_encode.h
fc_frame.h
fcoe_sysfs.h
iscsi_if.h
scsi_transport_iscsi: Add 25G and 40G speed definition
2016-02-23 21:27:02 -05:00
iscsi_proto.h
linux: drop __bitwise__ everywhere
2016-12-16 00:13:41 +02:00
iser.h
IB/iser,isert: Create and use new shared header
2015-12-24 00:17:35 -05:00
libfc.h
scsi: libfc: convert fc_fcp_pkt.ref_cnt from atomic_t to refcount_t
2017-03-15 18:44:02 -04:00
libfcoe.h
scsi: fcoe: Convert timers to use timer_setup()
2017-10-27 02:22:00 -07:00
libiscsi.h
SCSI misc on 20170503
2017-05-04 12:19:44 -07:00
libiscsi_tcp.h
iscsi_tcp: Use ahash
2016-01-27 20:36:10 +08:00
libsas.h
scsi: libsas: Use dynamic alloced work to avoid sas event lost
2018-01-08 21:59:28 -05:00
osd_attributes.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
osd_initiator.h
block: introduce new block status code type
2017-06-09 09:27:32 -06:00
osd_ore.h
Boaz Harrosh - Fix broken email address
2014-10-19 20:22:32 +03:00
osd_protocol.h
Boaz Harrosh - Fix broken email address
2014-10-19 20:22:32 +03:00
osd_sec.h
Boaz Harrosh - Fix broken email address
2014-10-19 20:22:32 +03:00
osd_sense.h
Boaz Harrosh - Fix broken email address
2014-10-19 20:22:32 +03:00
osd_types.h
Boaz Harrosh - Fix broken email address
2014-10-19 20:22:32 +03:00
sas.h
scsi: Centralise ssp frame information units
2015-11-25 22:12:50 -05:00
sas_ata.h
scsi.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
scsi_bsg_iscsi.h
scsi_cmnd.h
scsi: core: Unexport scsi_initialize_rq()
2017-12-07 21:11:53 -05:00
scsi_common.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
scsi_dbg.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
scsi_device.h
scsi: Use 'blist_flags_t' for scsi_devinfo flags
2017-11-16 17:43:27 -05:00
scsi_devinfo.h
scsi: Use 'blist_flags_t' for scsi_devinfo flags
2017-11-16 17:43:27 -05:00
scsi_dh.h
scsi_dh: add 'rescan' callback
2016-02-23 21:27:02 -05:00
scsi_driver.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
scsi_eh.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
scsi_host.h
scsi: core: Ensure that the SCSI error handler gets woken up
2017-12-07 21:06:31 -05:00
scsi_ioctl.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
scsi_proto.h
SCSI misc on 20171114
2017-11-14 16:23:44 -08:00
scsi_request.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
scsi_tcq.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
scsi_transport.h
SCSI misc on 20170220
2017-02-21 11:51:42 -08:00
scsi_transport_fc.h
scsi: scsi_transport_fc: fix typos on 64/128 GBit define names
2018-01-03 22:51:02 -05:00
scsi_transport_iscsi.h
scsi: libiscsi: Remove iscsi_destroy_session
2017-10-02 22:23:21 -04:00
scsi_transport_sas.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
scsi_transport_spi.h
scsi: remove abuses of scsi_populate_tag
2014-11-12 11:19:41 +01:00
scsi_transport_srp.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
scsicam.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
sg.h
License cleanup: add SPDX GPL-2.0 license identifier to files with no license
2017-11-02 11:10:55 +01:00
srp.h
IB/srp: Add 64-bit LUN support
2015-05-18 13:35:56 -04:00
viosrp.h
ibmvscsis: Initial commit of IBM VSCSI Tgt Driver
2016-07-20 01:15:43 -07:00