linux/drivers/target
Nicholas Bellinger 735703cac0 target: Fix target_submit_cmd() exception handling
This patch fixes a bug in target_submit_cmd() where the failure path
for transport_generic_allocate_tasks() made a direct call to
transport_send_check_condition_and_sense() and not calling the
final target_put_sess_cmd() release callback.

For transport_generic_allocate_tasks() failures, use the proper call to
transport_generic_request_failure() to handle kref_put() along
with potential internal queue full response processing.

It also makes transport_lookup_cmd_lun() failures in
target_submit_cmd() use transport_send_check_condition_and_sense() and
target_put_sess_cmd() directly to avoid se_cmd->se_dev reference in
transport_generic_request_failure() handling.

Finally it drops the out_check_cond: label and use direct reference for
allocate task failures, and per-se_device queue_full handling is
currently not supported for transport_lookup_cmd_lun() failure
descriptors due to se_device dependency.

Reported-by: Roland Dreier <roland@purestorage.com>
Cc: Roland Dreier <roland@purestorage.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
2012-02-07 06:47:11 +00:00
..
iscsi iscsi-target: Fix discovery with INADDR_ANY and IN6ADDR_ANY_INIT 2012-01-18 08:35:58 +00:00
loopback tcm_loop: bump max_sectors 2011-12-14 11:28:11 +00:00
tcm_fc target: Change target_submit_cmd() to return void 2012-02-07 06:41:04 +00:00
Kconfig iscsi-target: Add iSCSI fabric support for target v4.1 2011-07-26 09:16:43 +00:00
Makefile target: remove the ->transport_split_cdb callback in se_cmd 2011-10-24 03:21:15 +00:00
target_core_alua.c target: Allow control CDBs with data > 1 page 2012-01-18 08:35:58 +00:00
target_core_alua.h target: pass the se_task to the CDB emulation callback 2011-11-04 08:00:17 +00:00
target_core_cdb.c target: accept REQUEST_SENSE with 18bytes 2012-02-07 06:32:39 +00:00
target_core_configfs.c target/configs: remove trailing newline from udev_path and alias 2011-12-14 11:28:10 +00:00
target_core_device.c target: Allow control CDBs with data > 1 page 2012-01-18 08:35:58 +00:00
target_core_fabric_configfs.c target: fix return code of core_tpg_.*_lun 2012-01-18 08:33:44 +00:00
target_core_fabric_lib.c target: remove useless casts 2011-12-14 11:28:07 +00:00
target_core_file.c target: remove useless casts 2011-12-14 11:28:07 +00:00
target_core_file.h target: make the ->get_cdb method optional 2011-10-24 03:21:11 +00:00
target_core_hba.c target: header reshuffle, part2 2011-12-14 11:26:05 +00:00
target_core_iblock.c target: don't allocate bio headroom in iblock 2012-01-18 08:28:02 +00:00
target_core_iblock.h target: make the ->get_cdb method optional 2011-10-24 03:21:11 +00:00
target_core_internal.h target: fix return code of core_tpg_.*_lun 2012-01-18 08:33:44 +00:00
target_core_pr.c target: Allow control CDBs with data > 1 page 2012-01-18 08:35:58 +00:00
target_core_pr.h target: Move core_scsi3_check_cdb_abort_and_preempt 2011-12-14 11:27:34 +00:00
target_core_pscsi.c target: Allow control CDBs with data > 1 page 2012-01-18 08:35:58 +00:00
target_core_pscsi.h target: cleanup pscsi request submission 2011-10-24 03:20:44 +00:00
target_core_rd.c target: use \n as a separator for configuration 2011-12-14 11:27:23 +00:00
target_core_rd.h target: make the ->get_cdb method optional 2011-10-24 03:21:11 +00:00
target_core_stat.c target: remove useless casts 2011-12-14 11:28:07 +00:00
target_core_tmr.c target: simplify target_check_cdb_and_preempt 2011-12-14 11:27:55 +00:00
target_core_tpg.c target: fix return code of core_tpg_.*_lun 2012-01-18 08:33:44 +00:00
target_core_transport.c target: Fix target_submit_cmd() exception handling 2012-02-07 06:47:11 +00:00
target_core_ua.c target: header reshuffle, part2 2011-12-14 11:26:05 +00:00
target_core_ua.h [SCSI] target: Add LIO target core v4.0.0-rc6 2011-01-14 10:12:29 -06:00