diff mbox

[v5,08/22] target: Inline transport_check_aborted_status()

Message ID 20170210012852.15735-9-bart.vanassche@sandisk.com (mailing list archive)
State Superseded
Headers show

Commit Message

Bart Van Assche Feb. 10, 2017, 1:28 a.m. UTC
Due to the previous patch the second argument of
transport_check_aborted_status() is ignored and that function does
no longer have any side effect. Hence remove all calls of that
function that do not check the return value. Additionally, inline
this function.

Signed-off-by: Bart Van Assche <bart.vanassche@sandisk.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Sagi Grimberg <sagig@mellanox.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Cc: Andy Grover <agrover@redhat.com>
---
 drivers/infiniband/ulp/srpt/ib_srpt.c    |  3 ++-
 drivers/target/iscsi/iscsi_target.c      |  7 +------
 drivers/target/iscsi/iscsi_target_erl1.c |  8 +++-----
 drivers/target/target_core_transport.c   | 18 +++++-------------
 include/target/target_core_fabric.h      |  1 -
 5 files changed, 11 insertions(+), 26 deletions(-)
diff mbox

Patch

diff --git a/drivers/infiniband/ulp/srpt/ib_srpt.c b/drivers/infiniband/ulp/srpt/ib_srpt.c
index d21ba9d857c3..9241553f796d 100644
--- a/drivers/infiniband/ulp/srpt/ib_srpt.c
+++ b/drivers/infiniband/ulp/srpt/ib_srpt.c
@@ -1161,6 +1161,7 @@  static int srpt_abort_cmd(struct srpt_send_ioctx *ioctx)
 		 * Do nothing - defer abort processing until
 		 * srpt_queue_response() is invoked.
 		 */
+		WARN_ON_ONCE(!(ioctx->cmd.transport_state & CMD_T_ABORTED));
 		break;
 	case SRPT_STATE_NEED_DATA:
 		pr_debug("tag %#llx: RDMA read error\n", ioctx->cmd.tag);
@@ -2289,7 +2290,7 @@  static void srpt_queue_response(struct se_cmd *cmd)
 	}
 	spin_unlock_irqrestore(&ioctx->spinlock, flags);
 
-	if (unlikely(transport_check_aborted_status(&ioctx->cmd, false)
+	if (unlikely((ioctx->cmd.transport_state & CMD_T_ABORTED)
 		     || WARN_ON_ONCE(state == SRPT_STATE_CMD_RSP_SENT))) {
 		atomic_inc(&ch->req_lim_delta);
 		srpt_abort_cmd(ioctx);
diff --git a/drivers/target/iscsi/iscsi_target.c b/drivers/target/iscsi/iscsi_target.c
index b4f1d1cbe521..02c4f3f5c2aa 100644
--- a/drivers/target/iscsi/iscsi_target.c
+++ b/drivers/target/iscsi/iscsi_target.c
@@ -1518,8 +1518,6 @@  iscsit_check_dataout_hdr(struct iscsi_conn *conn, unsigned char *buf,
 			if (hdr->flags & ISCSI_FLAG_CMD_FINAL)
 				iscsit_stop_dataout_timer(cmd);
 
-			transport_check_aborted_status(se_cmd,
-					(hdr->flags & ISCSI_FLAG_CMD_FINAL));
 			return iscsit_dump_data_payload(conn, payload_length, 1);
 		}
 	} else {
@@ -1535,11 +1533,8 @@  iscsit_check_dataout_hdr(struct iscsi_conn *conn, unsigned char *buf,
 		 */
 		if (se_cmd->transport_state & CMD_T_ABORTED) {
 			if (hdr->flags & ISCSI_FLAG_CMD_FINAL)
-				if (--cmd->outstanding_r2ts < 1) {
+				if (--cmd->outstanding_r2ts < 1)
 					iscsit_stop_dataout_timer(cmd);
-					transport_check_aborted_status(
-							se_cmd, 1);
-				}
 
 			return iscsit_dump_data_payload(conn, payload_length, 1);
 		}
diff --git a/drivers/target/iscsi/iscsi_target_erl1.c b/drivers/target/iscsi/iscsi_target_erl1.c
index fe9b7f1e44ac..ee6ac90b9cf5 100644
--- a/drivers/target/iscsi/iscsi_target_erl1.c
+++ b/drivers/target/iscsi/iscsi_target_erl1.c
@@ -951,8 +951,7 @@  int iscsit_execute_cmd(struct iscsi_cmd *cmd, int ooo)
 			 * should be sent after unsolicited data out with
 			 * ISCSI_FLAG_CMD_FINAL set in iscsi_handle_data_out()
 			 */
-			if (transport_check_aborted_status(se_cmd,
-					(cmd->unsolicited_data == 0)) != 0)
+			if (se_cmd->transport_state & CMD_T_ABORTED)
 				return 0;
 			/*
 			 * Otherwise send CHECK_CONDITION and sense for
@@ -980,8 +979,7 @@  int iscsit_execute_cmd(struct iscsi_cmd *cmd, int ooo)
 				 * WRITEs if no more unsolicitied data is
 				 * expected.
 				 */
-				if (transport_check_aborted_status(se_cmd, 1)
-						!= 0)
+				if (se_cmd->transport_state & CMD_T_ABORTED)
 					return 0;
 
 				iscsit_set_dataout_sequence_values(cmd);
@@ -1000,7 +998,7 @@  int iscsit_execute_cmd(struct iscsi_cmd *cmd, int ooo)
 			 * Send the delayed TASK_ABORTED status for WRITEs if
 			 * no more nsolicitied data is expected.
 			 */
-			if (transport_check_aborted_status(se_cmd, 1) != 0)
+			if (se_cmd->transport_state & CMD_T_ABORTED)
 				return 0;
 
 			iscsit_set_unsoliticed_dataout(cmd);
diff --git a/drivers/target/target_core_transport.c b/drivers/target/target_core_transport.c
index d2cd7906a4a8..dd30a8c098aa 100644
--- a/drivers/target/target_core_transport.c
+++ b/drivers/target/target_core_transport.c
@@ -1906,18 +1906,16 @@  static bool target_handle_task_attr(struct se_cmd *cmd)
 
 void target_execute_cmd(struct se_cmd *cmd)
 {
+	if (cmd->transport_state & CMD_T_ABORTED) {
+		target_handle_abort(cmd);
+		return;
+	}
+
 	/*
 	 * Determine if frontend context caller is requesting the stopping of
 	 * this command for frontend exceptions.
-	 *
-	 * If the received CDB has aleady been aborted stop processing it here.
 	 */
 	spin_lock_irq(&cmd->t_state_lock);
-	if (__transport_check_aborted_status(cmd, 1)) {
-		spin_unlock_irq(&cmd->t_state_lock);
-		target_handle_abort(cmd);
-		return;
-	}
 	if (cmd->transport_state & CMD_T_STOP) {
 		pr_debug("%s:%d CMD_T_STOP for ITT: 0x%08llx\n",
 			__func__, __LINE__, cmd->tag);
@@ -3090,12 +3088,6 @@  transport_send_check_condition_and_sense(struct se_cmd *cmd,
 }
 EXPORT_SYMBOL(transport_send_check_condition_and_sense);
 
-bool transport_check_aborted_status(struct se_cmd *cmd, int send_status)
-{
-	return cmd->transport_state & CMD_T_ABORTED;
-}
-EXPORT_SYMBOL(transport_check_aborted_status);
-
 static void target_tmr_work(struct work_struct *work)
 {
 	struct se_cmd *cmd = container_of(work, struct se_cmd, work);
diff --git a/include/target/target_core_fabric.h b/include/target/target_core_fabric.h
index 5b7af743fe79..4c2d6fbf5f95 100644
--- a/include/target/target_core_fabric.h
+++ b/include/target/target_core_fabric.h
@@ -153,7 +153,6 @@  void	target_execute_cmd(struct se_cmd *cmd);
 int	transport_generic_free_cmd(struct se_cmd *, int);
 
 bool	transport_wait_for_tasks(struct se_cmd *);
-bool	transport_check_aborted_status(struct se_cmd *, int);
 int	transport_send_check_condition_and_sense(struct se_cmd *,
 		sense_reason_t, int);
 int	target_get_sess_cmd(struct se_cmd *, bool);