linux/include/scsi
Lee Duncan 8814c070e7 scsi: libiscsi: Fix NOP race condition
[ Upstream commit fe0a8a95e7 ]

iSCSI NOPs are sometimes "lost", mistakenly sent to the user-land iscsid
daemon instead of handled in the kernel, as they should be, resulting in a
message from the daemon like:

  iscsid: Got nop in, but kernel supports nop handling.

This can occur because of the new forward- and back-locks, and the fact
that an iSCSI NOP response can occur before processing of the NOP send is
complete. This can result in "conn->ping_task" being NULL in
iscsi_nop_out_rsp(), when the pointer is actually in the process of being
set.

To work around this, we add a new state to the "ping_task" pointer. In
addition to NULL (not assigned) and a pointer (assigned), we add the state
"being set", which is signaled with an INVALID pointer (using "-1").

Link: https://lore.kernel.org/r/20201106193317.16993-1-leeman.duncan@gmail.com
Reviewed-by: Mike Christie <michael.christie@oracle.com>
Signed-off-by: Lee Duncan <lduncan@suse.com>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2020-12-02 08:49:49 +01:00
..
fc
fc_encode.h
fc_frame.h
fcoe_sysfs.h
iscsi_if.h
iscsi_proto.h scsi: Revert "target: iscsi: Wait for all commands to finish before freeing a session" 2020-02-28 17:22:25 +01:00
iser.h
libfc.h scsi: libfc: Whitespace cleanup in libfc.h 2019-07-29 20:43:06 -04:00
libfcoe.h scsi: fcoe: Embed fc_rport_priv in fcoe_rport structure 2019-07-29 21:12:35 -04:00
libiscsi.h scsi: libiscsi: Fix NOP race condition 2020-12-02 08:49:49 +01:00
libiscsi_tcp.h
libsas.h
sas.h
sas_ata.h
scsi.h
scsi_bsg_iscsi.h
scsi_cmnd.h scsi: core: add support for request batching 2019-07-22 16:44:07 -04:00
scsi_common.h scsi: target: core: Add CONTROL field for trace events 2020-10-29 09:58:04 +01:00
scsi_dbg.h scsi: core: Reduce memory required for SCSI logging 2019-08-07 21:47:29 -04:00
scsi_device.h
scsi_devinfo.h
scsi_dh.h
scsi_driver.h
scsi_eh.h scsi: core: save/restore command resid for error handling 2019-10-03 21:43:04 -04:00
scsi_host.h scsi: core: add support for request batching 2019-07-22 16:44:07 -04:00
scsi_ioctl.h
scsi_proto.h
scsi_request.h
scsi_tcq.h
scsi_transport.h
scsi_transport_fc.h
scsi_transport_iscsi.h
scsi_transport_sas.h
scsi_transport_spi.h
scsi_transport_srp.h
scsicam.h
sg.h
srp.h
viosrp.h