linux/drivers/target/iscsi
Nicholas Bellinger 92eba7ddb9 iscsi-target: Fix iser explicit logout TX kthread leak
commit 007d038bdf upstream.

This patch fixes a regression introduced with the following commit
in v4.0-rc1 code, where an explicit iser-target logout would result
in ->tx_thread_active being incorrectly cleared by the logout post
handler, and subsequent TX kthread leak:

    commit 88dcd2dab5
    Author: Nicholas Bellinger <nab@linux-iscsi.org>
    Date:   Thu Feb 26 22:19:15 2015 -0800

        iscsi-target: Convert iscsi_thread_set usage to kthread.h

To address this bug, change iscsit_logout_post_handler_closesession()
and iscsit_logout_post_handler_samecid() to only cmpxchg() on
->tx_thread_active for traditional iscsi/tcp connections.

This is required because iscsi/tcp connections are invoking logout
post handler logic directly from TX kthread context, while iser
connections are invoking logout post handler logic from a seperate
workqueue context.

Cc: Sagi Grimberg <sagig@mellanox.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2015-08-10 12:20:31 -07:00
..
iscsi_target_auth.c iscsi-target: Reject mutual authentication with reflected CHAP_C 2014-06-26 15:12:37 -04:00
iscsi_target_auth.h
iscsi_target_configfs.c iscsi-target: Fix mutex_trylock usage in iscsit_increment_maxcmdsn 2013-12-04 10:56:14 -08:00
iscsi_target_configfs.h
iscsi_target_core.h iscsi-target: Convert iscsi_thread_set usage to kthread.h 2015-08-03 09:29:46 -07:00
iscsi_target_datain_values.c target/iscsi: Eliminate iscsi_cmd.data_length 2012-04-14 17:40:38 -07:00
iscsi_target_datain_values.h
iscsi_target_device.c iscsi-target: Fix mutex_trylock usage in iscsit_increment_maxcmdsn 2013-12-04 10:56:14 -08:00
iscsi_target_device.h target/iscsi: Remove unneeded wrapper functions 2012-02-25 14:37:47 -08:00
iscsi_target_erl1.c iscsi-target: Fix iscsit_sequence_cmd reject handling for iser 2013-08-04 16:51:17 +08:00
iscsi_target_erl1.h iscsit: use the itt_t abstract type 2012-10-03 14:21:50 -07:00
iscsi_target_erl2.c iscsi/iser-target: Use list_del_init for ->i_conn_node 2014-03-23 21:38:21 -07:00
iscsi_target_erl2.h iscsit: proper endianess conversions 2012-10-03 14:39:22 -07:00
iscsi_target_erl0.c iscsi-target: Convert iscsi_thread_set usage to kthread.h 2015-08-03 09:29:46 -07:00
iscsi_target_erl0.h
iscsi_target_login.c iscsi-target: Convert iscsi_thread_set usage to kthread.h 2015-08-03 09:29:46 -07:00
iscsi_target_login.h iscsi-target: Initial traditional TCP conversion to iscsit_transport 2013-04-25 01:05:26 -07:00
iscsi_target_nego.c iscsi-target: fix extract_param to handle buffer length corner case 2013-12-04 10:56:15 -08:00
iscsi_target_nego.h iscsi-target: Initial traditional TCP conversion to iscsit_transport 2013-04-25 01:05:26 -07:00
iscsi_target_nodeattrib.c iscsi-target: remove improper externs 2012-03-17 18:07:04 -07:00
iscsi_target_nodeattrib.h
iscsi_target_parameters.c iscsi-target: avoid NULL pointer in iscsi_copy_param_list failure 2014-10-05 14:54:12 -07:00
iscsi_target_parameters.h iscsi-target: fix heap buffer overflow on error 2013-05-30 18:07:54 -07:00
iscsi_target_seq_pdu_list.c iscsi-target: Change iscsi_target_seq_pdu_list.c to honor MaxXmitDataSegmentLength 2012-10-02 13:17:33 -07:00
iscsi_target_seq_pdu_list.h target/iscsi: Fold _decide_list_to_build into _build_pdu_and_seq_lists 2012-04-14 17:40:38 -07:00
iscsi_target_stat.c target: don't truncate the fail intr address 2013-02-13 11:27:58 -08:00
iscsi_target_stat.h
iscsi_target_tmr.c iscsi-target: Refactor TX queue logic + export response PDU creation 2013-04-25 01:05:27 -07:00
iscsi_target_tmr.h
iscsi_target_tpg.c iser-target: Fix multi network portal shutdown regression 2014-06-16 13:42:53 -07:00
iscsi_target_tpg.h
iscsi_target_tq.c iscsi-target: Drop problematic active_ts_list usage 2015-03-06 14:40:50 -08:00
iscsi_target_tq.h iscsit: mark various functions static 2012-10-02 14:41:59 -07:00
iscsi_target_transport.c iscsi-target: Add iscsit_transport API template 2013-04-25 01:05:26 -07:00
iscsi_target_util.c iscsi-target: Fail connection on short sendmsg writes 2015-01-27 07:52:31 -08:00
iscsi_target_util.h iscsi-target: Fix iscsit_sequence_cmd reject handling for iser 2013-08-04 16:51:17 +08:00
iscsi_target.c iscsi-target: Fix iser explicit logout TX kthread leak 2015-08-10 12:20:31 -07:00
iscsi_target.h iscsi-target: Fix iscsit_add_reject* usage for iser 2013-08-04 16:51:17 +08:00
Kconfig target: iscsi_target depends on NET 2011-07-28 20:16:18 +00:00
Makefile iscsi-target: Add iscsit_transport API template 2013-04-25 01:05:26 -07:00