target: Fix TAS handling for multi-session se_node_acls
authorNicholas Bellinger <nab@linux-iscsi.org>
Sat, 16 Jan 2016 20:49:49 +0000 (12:49 -0800)
committerNicholas Bellinger <nab@linux-iscsi.org>
Wed, 3 Feb 2016 22:10:04 +0000 (14:10 -0800)
commitebde1ca5a908b10312db4ecd7553e3ba039319ab
treee3a565cc0323cda675ba9a88ba4b9bfed919eb60
parenta6d9bb1c9605cd4f44e2d8290dc4d0e88f20292d
target: Fix TAS handling for multi-session se_node_acls

This patch fixes a bug in TMR task aborted status (TAS)
handling when multiple sessions are connected to the
same target WWPN endpoint and se_node_acl descriptor,
resulting in TASK_ABORTED status to not be generated
for aborted se_cmds on the remote port.

This is due to core_tmr_handle_tas_abort() incorrectly
comparing se_node_acl instead of se_session, for which
the multi-session case is expected to be sharing the
same se_node_acl.

Instead, go ahead and update core_tmr_handle_tas_abort()
to compare tmr_sess + cmd->se_sess in order to determine
if the LUN_RESET was received on a different I_T nexus,
and TASK_ABORTED status response needs to be generated.

Reviewed-by: Christoph Hellwig <hch@lst.de>
Cc: Quinn Tran <quinn.tran@qlogic.com>
Cc: Himanshu Madhani <himanshu.madhani@qlogic.com>
Cc: Sagi Grimberg <sagig@mellanox.com>
Cc: Hannes Reinecke <hare@suse.de>
Cc: Andy Grover <agrover@redhat.com>
Cc: Mike Christie <mchristi@redhat.com>
Cc: stable@vger.kernel.org # 3.10+
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_tmr.c