android_kernel_oneplus_msm8998/drivers/target/iscsi
Nicholas Bellinger 694c1ed559 iscsi-target: Make TASK_REASSIGN use proper se_cmd->cmd_kref
commit ae072726f6109bb1c94841d6fb3a82dde298ea85 upstream.

Since commit 59b6986dbf fixed a potential NULL pointer dereference
by allocating a se_tmr_req for ISCSI_TM_FUNC_TASK_REASSIGN, the
se_tmr_req is currently leaked by iscsit_free_cmd() because no
iscsi_cmd->se_cmd.se_tfo was associated.

To address this, treat ISCSI_TM_FUNC_TASK_REASSIGN like any other
TMR and call transport_init_se_cmd() + target_get_sess_cmd() to
setup iscsi_cmd->se_cmd.se_tfo with se_cmd->cmd_kref of 2.

This will ensure normal release operation once se_cmd->cmd_kref
reaches zero and target_release_cmd_kref() is invoked, se_tmr_req
will be released via existing target_free_cmd_mem() and
core_tmr_release_req() code.

Reported-by: Donald White <dew@datera.io>
Cc: Donald White <dew@datera.io>
Cc: Mike Christie <mchristi@redhat.com>
Cc: Hannes Reinecke <hare@suse.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2018-01-17 09:35:31 +01:00
..
iscsi_target.c iscsi-target: Make TASK_REASSIGN use proper se_cmd->cmd_kref 2018-01-17 09:35:31 +01:00
iscsi_target.h target/iscsi: Replace __kernel_sockaddr_storage with sockaddr_storage 2015-08-26 23:27:25 -07:00
iscsi_target_auth.c
iscsi_target_auth.h
iscsi_target_configfs.c iscsi-target: fix memory leak in lio_target_tiqn_addtpg() 2017-12-20 10:04:58 +01:00
iscsi_target_datain_values.c
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 target/iscsi: Fix unsolicited data seq_end_offset calculation 2017-10-21 17:09:06 +02:00
iscsi_target_erl0.h iscsi-target: Always wait for kthread_should_stop() before kthread exit 2017-08-11 09:08:49 -07:00
iscsi_target_erl1.c
iscsi_target_erl1.h
iscsi_target_erl2.c
iscsi_target_erl2.h
iscsi_target_login.c iscsi-target: Fix iscsi_np reset hung task during parallel delete 2017-08-16 13:40:28 -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 initial login PDU asynchronous socket close OOPs 2017-08-11 09:08:49 -07:00
iscsi_target_nego.h
iscsi_target_nodeattrib.c
iscsi_target_nodeattrib.h
iscsi_target_parameters.c iscsi-target: Add login_keys_workaround attribute for non RFC initiators 2017-07-27 15:06:04 -07:00
iscsi_target_parameters.h iscsi-target: Add login_keys_workaround attribute for non RFC initiators 2017-07-27 15:06:04 -07:00
iscsi_target_seq_pdu_list.c
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 target: Drop iSCSI use of mutex around max_cmd_sn increment 2015-08-02 23:11:52 -07:00
iscsi_target_tmr.h
iscsi_target_tpg.c iscsi-target: Add login_keys_workaround attribute for non RFC initiators 2017-07-27 15:06:04 -07:00
iscsi_target_tpg.h iscsi-target: Add login_keys_workaround attribute for non RFC initiators 2017-07-27 15:06:04 -07:00
iscsi_target_transport.c
iscsi_target_util.c iscsi-target: Fix TMR reference leak during session shutdown 2017-04-21 09:30:05 +02:00
iscsi_target_util.h
Kconfig
Makefile