Merge branch 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/nab/target...
[linux-2.6-microblaze.git] / drivers / target / iscsi / iscsi_target_erl1.c
index 659efaf..5efa42b 100644 (file)
@@ -1147,11 +1147,11 @@ static int iscsit_set_dataout_timeout_values(
 /*
  *     NOTE: Called from interrupt (timer) context.
  */
-static void iscsit_handle_dataout_timeout(unsigned long data)
+void iscsit_handle_dataout_timeout(struct timer_list *t)
 {
        u32 pdu_length = 0, pdu_offset = 0;
        u32 r2t_length = 0, r2t_offset = 0;
-       struct iscsi_cmd *cmd = (struct iscsi_cmd *) data;
+       struct iscsi_cmd *cmd = from_timer(cmd, t, dataout_timer);
        struct iscsi_conn *conn = cmd->conn;
        struct iscsi_session *sess = NULL;
        struct iscsi_node_attrib *na;
@@ -1263,13 +1263,9 @@ void iscsit_start_dataout_timer(
        pr_debug("Starting DataOUT timer for ITT: 0x%08x on"
                " CID: %hu.\n", cmd->init_task_tag, conn->cid);
 
-       init_timer(&cmd->dataout_timer);
-       cmd->dataout_timer.expires = (get_jiffies_64() + na->dataout_timeout * HZ);
-       cmd->dataout_timer.data = (unsigned long)cmd;
-       cmd->dataout_timer.function = iscsit_handle_dataout_timeout;
        cmd->dataout_timer_flags &= ~ISCSI_TF_STOP;
        cmd->dataout_timer_flags |= ISCSI_TF_RUNNING;
-       add_timer(&cmd->dataout_timer);
+       mod_timer(&cmd->dataout_timer, jiffies + na->dataout_timeout * HZ);
 }
 
 void iscsit_stop_dataout_timer(struct iscsi_cmd *cmd)