summaryrefslogtreecommitdiffstats
path: root/drivers/target
diff options
context:
space:
mode:
authorBart Van Assche <bart.vanassche@wdc.com>2018-06-22 14:52:55 -0700
committerMartin K. Petersen <martin.petersen@oracle.com>2018-07-02 16:44:31 -0400
commit709d56512fe8ed6d5092a1d43a4343d23df2b31c (patch)
treec3513d8a4e70e3c3e09caf24c2844f60a430f830 /drivers/target
parent953bcf7ad16ac6ecee7d2f5593501aee5e5ae8b8 (diff)
downloadlinux-709d56512fe8ed6d5092a1d43a4343d23df2b31c.tar.gz
linux-709d56512fe8ed6d5092a1d43a4343d23df2b31c.tar.bz2
linux-709d56512fe8ed6d5092a1d43a4343d23df2b31c.zip
scsi: target: Simplify core_tmr_handle_tas_abort()
The code that can set CMD_T_TAS is executed by the same thread as the thread that executes core_tmr_handle_tas_abort(). That means that no locking is needed to check CMD_T_TAS from inside core_tmr_handle_tas_abort(). This patch does not change any functionality. Signed-off-by: Bart Van Assche <bart.vanassche@wdc.com> Reviewed-by: Mike Christie <mchristi@redhat.com> Cc: Hannes Reinecke <hare@suse.com> Cc: Christoph Hellwig <hch@lst.de> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
Diffstat (limited to 'drivers/target')
-rw-r--r--drivers/target/target_core_tmr.c15
1 files changed, 3 insertions, 12 deletions
diff --git a/drivers/target/target_core_tmr.c b/drivers/target/target_core_tmr.c
index da8125dd3a4c..08af053e7990 100644
--- a/drivers/target/target_core_tmr.c
+++ b/drivers/target/target_core_tmr.c
@@ -77,21 +77,12 @@ void core_tmr_release_req(struct se_tmr_req *tmr)
static int core_tmr_handle_tas_abort(struct se_cmd *cmd, int tas)
{
- unsigned long flags;
- bool remove = true, send_tas;
- /*
- * TASK ABORTED status (TAS) bit support
- */
- spin_lock_irqsave(&cmd->t_state_lock, flags);
- send_tas = (cmd->transport_state & CMD_T_TAS);
- spin_unlock_irqrestore(&cmd->t_state_lock, flags);
+ bool send_tas = cmd->transport_state & CMD_T_TAS;
- if (send_tas) {
- remove = false;
+ if (send_tas)
transport_send_task_abort(cmd);
- }
- return transport_cmd_finish_abort(cmd, remove);
+ return transport_cmd_finish_abort(cmd, !send_tas);
}
static int target_check_cdb_and_preempt(struct list_head *list,