linux/drivers/target/iscsi
Nicholas Bellinger 8f0dfb3d8b iscsi-target: Fix early sk_data_ready LOGIN_FLAGS_READY race
There is a iscsi-target/tcp login race in LOGIN_FLAGS_READY
state assignment that can result in frequent errors during
iscsi discovery:

      "iSCSI Login negotiation failed."

To address this bug, move the initial LOGIN_FLAGS_READY
assignment ahead of iscsi_target_do_login() when handling
the initial iscsi_target_start_negotiation() request PDU
during connection login.

As iscsi_target_do_login_rx() work_struct callback is
clearing LOGIN_FLAGS_READ_ACTIVE after subsequent calls
to iscsi_target_do_login(), the early sk_data_ready
ahead of the first iscsi_target_do_login() expects
LOGIN_FLAGS_READY to also be set for the initial
login request PDU.

As reported by Maged, this was first obsered using an
MSFT initiator running across multiple VMWare host
virtual machines with iscsi-target/tcp.

Reported-by: Maged Mokhtar <mmokhtar@binarykinetics.com>
Tested-by: Maged Mokhtar <mmokhtar@binarykinetics.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
2016-05-17 00:27:05 -07:00
..
cxgbit cxgbit: Use type ISCSI_CXGBIT + cxgbit tpg_np attribute 2016-05-16 22:23:59 -07:00
iscsi_target_auth.c iscsi-target: Use shash and ahash 2016-01-27 20:36:12 +08:00
iscsi_target_auth.h iscsi-target: Fix CHAP_A parameter list handling 2014-06-05 19:44:02 -07:00
iscsi_target_configfs.c cxgbit: Use type ISCSI_CXGBIT + cxgbit tpg_np attribute 2016-05-16 22:23:59 -07:00
iscsi_target_datain_values.c iscsi-target: export symbols 2016-05-09 23:12:28 -07:00
iscsi_target_datain_values.h
iscsi_target_device.c target: Fix max_cmd_sn increment w/o cmdsn mutex regressions 2015-09-11 00:32:28 -07:00
iscsi_target_device.h
iscsi_target_erl0.c iscsi-target: remove usage of ->shutdown_session 2016-05-10 01:19:41 -07:00
iscsi_target_erl0.h iscsi-target: remove support for obsolete markers 2015-05-30 22:41:43 -07:00
iscsi_target_erl1.c iscsi-target: Fix indentation + spelling + unreachable code 2016-01-06 13:39:19 -08:00
iscsi_target_erl1.h
iscsi_target_erl2.c iscsi-target: Move iscsi_target_[core,stat].h under linux include 2015-01-30 13:06:21 -08:00
iscsi_target_erl2.h
iscsi_target_login.c iscsi-target: remove usage of ->shutdown_session 2016-05-10 01:19:41 -07:00
iscsi_target_login.h Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target-pending 2015-09-11 19:00:42 -07:00
iscsi_target_nego.c iscsi-target: Fix early sk_data_ready LOGIN_FLAGS_READY race 2016-05-17 00:27:05 -07:00
iscsi_target_nego.h
iscsi_target_nodeattrib.c iscsi-target: Move iscsi_target_[core,stat].h under linux include 2015-01-30 13:06:21 -08:00
iscsi_target_nodeattrib.h
iscsi_target_parameters.c iscsi-target: export symbols 2016-05-09 23:12:28 -07:00
iscsi_target_parameters.h iscsi-target: remove support for obsolete markers 2015-05-30 22:41:43 -07:00
iscsi_target_seq_pdu_list.c iscsi-target: Move iscsi_target_[core,stat].h under linux include 2015-01-30 13:06:21 -08:00
iscsi_target_seq_pdu_list.h
iscsi_target_stat.c target: use per-attribute show and store methods 2015-10-13 22:17:49 -07:00
iscsi_target_tmr.c iscsi-target: Fix indentation + spelling + unreachable code 2016-01-06 13:39:19 -08:00
iscsi_target_tmr.h
iscsi_target_tpg.c target: Convert ACL change queue_depth se_session reference usage 2016-01-20 01:34:14 -08:00
iscsi_target_tpg.h target: Convert ACL change queue_depth se_session reference usage 2016-01-20 01:34:14 -08:00
iscsi_target_transport.c target: Deletion of unnecessary checks before the function call "module_put" 2014-12-01 21:35:21 -08:00
iscsi_target_util.c iscsi-target: export symbols 2016-05-09 23:12:28 -07:00
iscsi_target_util.h iscsi-target: remove support for obsolete markers 2015-05-30 22:41:43 -07:00
iscsi_target.c iscsi-target: Convert transport drivers to signal rdma_shutdown 2016-05-16 22:23:33 -07:00
iscsi_target.h target/iscsi: Replace __kernel_sockaddr_storage with sockaddr_storage 2015-08-26 23:27:25 -07:00
Kconfig cxgbit: add files for cxgbit.ko 2016-05-09 23:12:54 -07:00
Makefile cxgbit: add files for cxgbit.ko 2016-05-09 23:12:54 -07:00