target: Fix incorrect transport_sent usage
Nicholas Bellinger [Mon, 24 Oct 2011 01:16:13 +0000 (18:16 -0700)]
This patch converts target-core to use se_cmd->t_transport_sent instead of
a duplicated se_cmd->transport_sent member in a handful of locations.
It also updates iscsi_target to properly use ->t_transport_sent instead of
it's own iscsi_cmd_t->transport_sent value that was not being assigned.

Reported-by: Christoph Hellwig <hch@lst.de>
Cc: Christoph Hellwig <hch@lst.de>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>

drivers/target/iscsi/iscsi_target_core.h
drivers/target/iscsi/iscsi_target_tmr.c
drivers/target/target_core_transport.c
include/target/target_core_base.h

index 84818d7..3723d90 100644 (file)
@@ -428,7 +428,6 @@ struct iscsi_cmd {
        /* Number of times struct iscsi_cmd is present in immediate queue */
        atomic_t                immed_queue_count;
        atomic_t                response_queue_count;
-       atomic_t                transport_sent;
        spinlock_t              datain_lock;
        spinlock_t              dataout_timeout_lock;
        /* spinlock for protecting struct iscsi_cmd->i_state */
index c3617d8..490207e 100644 (file)
@@ -250,7 +250,7 @@ static int iscsit_task_reassign_complete_write(
         * so if we have received all DataOUT we can safety ignore Initiator.
         */
        if (cmd->cmd_flags & ICF_GOT_LAST_DATAOUT) {
-               if (!atomic_read(&cmd->transport_sent)) {
+               if (!atomic_read(&cmd->se_cmd.t_transport_sent)) {
                        pr_debug("WRITE ITT: 0x%08x: t_state: %d"
                                " never sent to transport\n",
                                cmd->init_task_tag, cmd->se_cmd.t_state);
@@ -314,7 +314,7 @@ static int iscsit_task_reassign_complete_read(
                cmd->acked_data_sn = (tmr_req->exp_data_sn - 1);
        }
 
-       if (!atomic_read(&cmd->transport_sent)) {
+       if (!atomic_read(&cmd->se_cmd.t_transport_sent)) {
                pr_debug("READ ITT: 0x%08x: t_state: %d never sent to"
                        " transport\n", cmd->init_task_tag,
                        cmd->se_cmd.t_state);
index ac048db..5027619 100644 (file)
@@ -2294,7 +2294,7 @@ check_depth:
 
        if (atomic_read(&cmd->t_task_cdbs_sent) ==
            cmd->t_task_list_num)
-               atomic_set(&cmd->transport_sent, 1);
+               atomic_set(&cmd->t_transport_sent, 1);
 
        transport_start_task_timer(task);
        spin_unlock_irqrestore(&cmd->t_state_lock, flags);
@@ -2311,7 +2311,7 @@ check_depth:
                        task->task_flags &= ~TF_ACTIVE;
                        spin_unlock_irqrestore(&cmd->t_state_lock, flags);
                        del_timer_sync(&task->task_timer);
-                       atomic_set(&cmd->transport_sent, 0);
+                       atomic_set(&cmd->t_transport_sent, 0);
                        transport_stop_tasks_for_cmd(cmd);
                        atomic_inc(&dev->depth_left);
                        transport_generic_request_failure(cmd, 0, 1);
@@ -2351,7 +2351,7 @@ check_depth:
                        task->task_flags &= ~TF_ACTIVE;
                        spin_unlock_irqrestore(&cmd->t_state_lock, flags);
                        del_timer_sync(&task->task_timer);
-                       atomic_set(&cmd->transport_sent, 0);
+                       atomic_set(&cmd->t_transport_sent, 0);
                        transport_stop_tasks_for_cmd(cmd);
                        atomic_inc(&dev->depth_left);
                        transport_generic_request_failure(cmd, 0, 1);
index 132266b..d210f1f 100644 (file)
@@ -439,7 +439,6 @@ struct se_cmd {
        u32                     orig_fe_lun;
        /* Persistent Reservation key */
        u64                     pr_res_key;
-       atomic_t                transport_sent;
        /* Used for sense data */
        void                    *sense_buffer;
        struct list_head        se_delayed_node;