summaryrefslogtreecommitdiffstats
path: root/drivers/target/target_core_transport.c
diff options
context:
space:
mode:
authorBart Van Assche <bart.vanassche@sandisk.com>2017-02-14 16:25:45 -0800
committerNicholas Bellinger <nab@linux-iscsi.org>2017-02-20 13:28:09 -0800
commite3b88ee95b4e4bf3e9729a4695d695b9c7c296c8 (patch)
tree84152cbdc1904bf6873ba53c565028b2cafff84f /drivers/target/target_core_transport.c
parent762b6f00a995863afa274d6b5ffa3880dac1714b (diff)
downloadop-kernel-dev-e3b88ee95b4e4bf3e9729a4695d695b9c7c296c8.zip
op-kernel-dev-e3b88ee95b4e4bf3e9729a4695d695b9c7c296c8.tar.gz
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 2219000..efb9e6f 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",
OpenPOWER on IntegriCloud