summaryrefslogtreecommitdiffstats
path: root/drivers/target/target_core_transport.c
diff options
context:
space:
mode:
authorBart Van Assche2017-02-15 01:25:45 +0100
committerNicholas Bellinger2017-02-20 22:28:09 +0100
commite3b88ee95b4e4bf3e9729a4695d695b9c7c296c8 (patch)
tree84152cbdc1904bf6873ba53c565028b2cafff84f /drivers/target/target_core_transport.c
parentuapi: fix linux/target_core_user.h userspace compilation errors (diff)
downloadkernel-qcow2-linux-e3b88ee95b4e4bf3e9729a4695d695b9c7c296c8.tar.gz
kernel-qcow2-linux-e3b88ee95b4e4bf3e9729a4695d695b9c7c296c8.tar.xz
kernel-qcow2-linux-e3b88ee95b4e4bf3e9729a4695d695b9c7c296c8.zip
target: Fix handling of aborted failed commands
If a target driver (e.g. tcm_qla2xxx) calls transport_generic_request_failure() to report that receiving data has failed and that SCSI command has already been aborted by the initiator, ensure that the SCSI status ABORTED is sent back to the initiator instead of the sense code provided by the target driver. Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com> Cc: Hannes Reinecke <hare@suse.com> Cc: Christoph Hellwig <hch@lst.de> Cc: David Disseldorp <ddiss@suse.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
Diffstat (limited to 'drivers/target/target_core_transport.c')
-rw-r--r--drivers/target/target_core_transport.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
index 22190003534d..efb9e6f38201 100644
--- a/drivers/target/target_core_transport.c
+++ b/drivers/target/target_core_transport.c
@@ -1647,6 +1647,9 @@ void transport_generic_request_failure(struct se_cmd *cmd,
{
int ret = 0, post_ret = 0;
+ if (transport_check_aborted_status(cmd, 1))
+ return;
+
pr_debug("-----[ Storage Engine Exception for cmd: %p ITT: 0x%08llx"
" CDB: 0x%02x\n", cmd, cmd->tag, cmd->t_task_cdb[0]);
pr_debug("-----[ i_state: %d t_state: %d sense_reason: %d\n",