scsi: target: Simplify core_tmr_handle_tas_abort()
authorBart Van Assche <bart.vanassche@wdc.com>
Fri, 22 Jun 2018 21:52:55 +0000 (14:52 -0700)
committerMartin K. Petersen <martin.petersen@oracle.com>
Mon, 2 Jul 2018 20:44:31 +0000 (16:44 -0400)
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>
drivers/target/target_core_tmr.c

index da8125d..08af053 100644 (file)
@@ -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,