Spdk/lib/iscsi
Shuhei Matsumoto 5124f87f4e iscsi: Abort queued datain task before submitting abort to SCSI layer
By up to the previous patch in the patch series, unexpected behavior
due to write tasks in task management commands have been fixed.

But unexpected behavior due to read tasks in task management commands
have been still observed.

Remaining patches in the patch series will fix the unexpected behavior
due to read tasks in task management commands.

This patch is for ABORT TASK.

ABORT TASK is not supported in SCSI layer yet. But the initiator
doesn't care about the failure is due to not-supported or failure.
It must be avoided that the task management command returns SCSI Good
but some tasks are not aborted and return SCSI Good later. On the other
hand, it is acceptable that the task management command returns
failure but some tasks are partially aborted.

Hence this patch adds operation without checking the support status
in SCSI layer.

iSCSI layer doesn't have pending queue and hence if the target task
is read task and is queued in queued_datain_tasks, it must be
aborted before submitting ABORT TASK to SCSI layer.

Aborting the target task may not complete by an iteration because
submitted read tasks are limited. Hence use poller to complete abortion
by repetition.

Change-Id: I030a8b2f19c2f7c7d2f7b0b2c633579534db631b
Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-on: https://review.gerrithub.io/436076
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
2018-12-10 20:34:11 +00:00
..
acceptor.c thread: Replace #include of io_channel.h with thread.h 2018-06-12 15:24:07 +00:00
acceptor.h iscsi: login poller per portal and portal cache 2017-10-06 17:00:45 -04:00
conn.c iscsi: Remove unused variable pending_activate_event from iscsi_conn 2018-12-06 22:35:40 +00:00
conn.h iscsi: Remove unused variable pending_activate_event from iscsi_conn 2018-12-06 22:35:40 +00:00
init_grp.c iscsi: check the length of initiator/target name 2018-11-21 00:55:55 +00:00
init_grp.h iscsi: Use not C++ style comments // but C-style comments /* */ 2018-10-31 22:01:47 +00:00
iscsi_rpc.c iscsi&scripts/rpc: Add get_iscsi_auth_groups RPC to get current configuration 2018-08-29 21:40:31 +00:00
iscsi_subsystem.c iscsi: Fix the bug that mutual chap is not enabled by .ini config file 2018-09-11 21:59:44 +00:00
iscsi.c iscsi: Abort queued datain task before submitting abort to SCSI layer 2018-12-10 20:34:11 +00:00
iscsi.h iscsi: Clear only R2T tasks prior to task management request 2018-12-06 22:35:40 +00:00
Makefile mk: add framework for defining inter-lib dependencies 2018-11-01 21:25:55 +00:00
md5.c astyle: enforce braces around single-line statements 2017-12-11 11:19:32 -05:00
md5.h include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
param.c iscsi: check provided data_len for negative value during param negotiation 2018-11-29 19:31:11 +00:00
param.h include: Move the remainder of the code base to stdinc.h 2017-05-08 13:20:36 -07:00
portal_grp.c iscsi: Fix two bugs of JSON config dump 2018-05-17 23:06:11 +00:00
portal_grp.h iscsi: Use not C++ style comments // but C-style comments /* */ 2018-10-31 22:01:47 +00:00
task.c scsi, iscsi: move task->parent to iSCSI task 2018-01-05 00:01:37 -05:00
task.h iscsi: Abort queued datain task before submitting abort to SCSI layer 2018-12-10 20:34:11 +00:00
tgt_node.c scsi: Set TMF code prior to calling spdk_scsi_dev_queue_mgmt_task 2018-12-10 20:34:11 +00:00
tgt_node.h iscsi: Add set_iscsi_target_node_auth RPC to configure CHAP dynamically 2018-08-22 22:39:26 +00:00