linux/drivers/infiniband
Nicholas Bellinger eca33548a6 iser-target: Add missing target_put_sess_cmd for ImmedateData failure
commit 6cc44a6fb4 upstream.

This patch addresses a bug where an early exception for SCSI WRITE
with ImmediateData=Yes was missing the target_put_sess_cmd() call
to drop the extra se_cmd->cmd_kref reference obtained during the
normal iscsit_setup_scsi_cmd() codepath execution.

This bug was manifesting itself during session shutdown within
isert_cq_rx_comp_err() where target_wait_for_sess_cmds() would
end up waiting indefinately for the last se_cmd->cmd_kref put to
occur for the failed SCSI WRITE + ImmediateData descriptors.

This fix follows what traditional iscsi-target code already does
for the same failure case within iscsit_get_immediate_data().

Reported-by: Sagi Grimberg <sagig@dev.mellanox.co.il>
Cc: Sagi Grimberg <sagig@dev.mellanox.co.il>
Cc: Or Gerlitz <ogerlitz@mellanox.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
History 2014-06-11 11:54:13 -07:00
..
core IB/core: Don't resolve passive side RoCE L2 address in CMA REQ handler 2014-05-06 07:59:28 -07:00
hw IB/qib: add missing braces in do_qib_user_sdma_queue_create() 2014-05-06 07:59:28 -07:00
ulp iser-target: Add missing target_put_sess_cmd for ImmedateData failure 2014-06-11 11:54:13 -07:00
Kconfig Merge branch 'ip-roce' into for-next 2014-01-22 23:24:21 -08:00
Makefile IB/usnic: Add Cisco VIC low-level hardware driver 2014-01-14 00:44:28 -08:00