kernel_optimize_test/drivers/target
Nicholas Bellinger 3d28934aaa target: Add TMR_ABORT_TASK task management support
This patch adds initial support for TMR_ABORT_TASK ops for se_cmd
descriptors using se_sess->sess_cmd_list and se_cmd->cmd_kref counting.

It will perform an explict abort for all outstanding se_cmd ops based
upon tmr->ref_task_tag that have not been set CMD_T_COMPLETE.
It will cancel se_cmd->work and wait for backing I/O to complete before
attempting to send SAM_STAT_TASK_ABORTED and perform
target_put_sess_cmd() to release the referenced descriptor.

It also adds a CMD_T_ABORTED check into transport_complete_task() to
catch the completion from backend I/O that has been aborted, and
updates transport_wait_for_tasks() to allow CMD_T_ABORTED usage with
core_tmr_abort_task() context.

Reported-by: Roland Dreier <roland@purestorage.com>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
2012-02-25 14:37:49 -08:00
..
iscsi target: Add SCF_SCSI_TMR_CDB usage and drop se_tmr_req_cache 2012-02-25 14:37:47 -08:00
loopback tcm_loop: switch to using transport_handle_cdb_direct 2012-02-25 14:37:48 -08:00
tcm_fc tcm_fc: Convert ft_send_tm to use target_submit_tmr 2012-02-25 14:37:48 -08: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: Use LIST_HEAD()/DEFINE_MUTEX() for static objects 2012-02-25 14:37:46 -08:00
target_core_device.c target: remove the transport_lun_active field in struct se_cmd 2012-02-25 14:37:46 -08: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: increase iblock task sizes 2012-02-25 14:37:46 -08:00
target_core_iblock.h target: increase iblock task sizes 2012-02-25 14:37:46 -08:00
target_core_internal.h target: Add TMR_ABORT_TASK task management support 2012-02-25 14:37:49 -08:00
target_core_pr.c target: Use LIST_HEAD()/DEFINE_MUTEX() for static objects 2012-02-25 14:37:46 -08: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: Add TMR_ABORT_TASK task management support 2012-02-25 14:37:49 -08: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: Add TMR_ABORT_TASK task management support 2012-02-25 14:37:49 -08:00
target_core_ua.c target: header reshuffle, part2 2011-12-14 11:26:05 +00:00
target_core_ua.h