mirror of
https://github.com/torvalds/linux.git
synced 2025-11-09 05:00:09 +02:00
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> |
||
|---|---|---|
| .. | ||
| fc | ||
| fc_encode.h | ||
| fc_frame.h | ||
| fcoe_sysfs.h | ||
| iscsi_if.h | ||
| iscsi_proto.h | ||
| iser.h | ||
| libfc.h | ||
| libfcoe.h | ||
| libiscsi.h | ||
| libiscsi_tcp.h | ||
| libsas.h | ||
| sas.h | ||
| sas_ata.h | ||
| scsi.h | ||
| scsi_bsg_iscsi.h | ||
| scsi_cmnd.h | ||
| scsi_common.h | ||
| scsi_dbg.h | ||
| scsi_device.h | ||
| scsi_devinfo.h | ||
| scsi_dh.h | ||
| scsi_driver.h | ||
| scsi_eh.h | ||
| scsi_host.h | ||
| 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 | ||