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_util.c
index 70c6b9b..4435bf3 100644 (file)
@@ -176,6 +176,7 @@ struct iscsi_cmd *iscsit_allocate_cmd(struct iscsi_conn *conn, int state)
        spin_lock_init(&cmd->istate_lock);
        spin_lock_init(&cmd->error_lock);
        spin_lock_init(&cmd->r2t_lock);
+       timer_setup(&cmd->dataout_timer, iscsit_handle_dataout_timeout, 0);
 
        return cmd;
 }
@@ -884,9 +885,9 @@ static int iscsit_add_nopin(struct iscsi_conn *conn, int want_response)
        return 0;
 }
 
-static void iscsit_handle_nopin_response_timeout(unsigned long data)
+void iscsit_handle_nopin_response_timeout(struct timer_list *t)
 {
-       struct iscsi_conn *conn = (struct iscsi_conn *) data;
+       struct iscsi_conn *conn = from_timer(conn, t, nopin_response_timer);
 
        iscsit_inc_conn_usage_count(conn);
 
@@ -953,14 +954,10 @@ void iscsit_start_nopin_response_timer(struct iscsi_conn *conn)
                return;
        }
 
-       init_timer(&conn->nopin_response_timer);
-       conn->nopin_response_timer.expires =
-               (get_jiffies_64() + na->nopin_response_timeout * HZ);
-       conn->nopin_response_timer.data = (unsigned long)conn;
-       conn->nopin_response_timer.function = iscsit_handle_nopin_response_timeout;
        conn->nopin_response_timer_flags &= ~ISCSI_TF_STOP;
        conn->nopin_response_timer_flags |= ISCSI_TF_RUNNING;
-       add_timer(&conn->nopin_response_timer);
+       mod_timer(&conn->nopin_response_timer,
+                 jiffies + na->nopin_response_timeout * HZ);
 
        pr_debug("Started NOPIN Response Timer on CID: %d to %u"
                " seconds\n", conn->cid, na->nopin_response_timeout);
@@ -984,9 +981,9 @@ void iscsit_stop_nopin_response_timer(struct iscsi_conn *conn)
        spin_unlock_bh(&conn->nopin_timer_lock);
 }
 
-static void iscsit_handle_nopin_timeout(unsigned long data)
+void iscsit_handle_nopin_timeout(struct timer_list *t)
 {
-       struct iscsi_conn *conn = (struct iscsi_conn *) data;
+       struct iscsi_conn *conn = from_timer(conn, t, nopin_timer);
 
        iscsit_inc_conn_usage_count(conn);
 
@@ -1019,13 +1016,9 @@ void __iscsit_start_nopin_timer(struct iscsi_conn *conn)
        if (conn->nopin_timer_flags & ISCSI_TF_RUNNING)
                return;
 
-       init_timer(&conn->nopin_timer);
-       conn->nopin_timer.expires = (get_jiffies_64() + na->nopin_timeout * HZ);
-       conn->nopin_timer.data = (unsigned long)conn;
-       conn->nopin_timer.function = iscsit_handle_nopin_timeout;
        conn->nopin_timer_flags &= ~ISCSI_TF_STOP;
        conn->nopin_timer_flags |= ISCSI_TF_RUNNING;
-       add_timer(&conn->nopin_timer);
+       mod_timer(&conn->nopin_timer, jiffies + na->nopin_timeout * HZ);
 
        pr_debug("Started NOPIN Timer on CID: %d at %u second"
                " interval\n", conn->cid, na->nopin_timeout);
@@ -1047,13 +1040,9 @@ void iscsit_start_nopin_timer(struct iscsi_conn *conn)
                return;
        }
 
-       init_timer(&conn->nopin_timer);
-       conn->nopin_timer.expires = (get_jiffies_64() + na->nopin_timeout * HZ);
-       conn->nopin_timer.data = (unsigned long)conn;
-       conn->nopin_timer.function = iscsit_handle_nopin_timeout;
        conn->nopin_timer_flags &= ~ISCSI_TF_STOP;
        conn->nopin_timer_flags |= ISCSI_TF_RUNNING;
-       add_timer(&conn->nopin_timer);
+       mod_timer(&conn->nopin_timer, jiffies + na->nopin_timeout * HZ);
 
        pr_debug("Started NOPIN Timer on CID: %d at %u second"
                        " interval\n", conn->cid, na->nopin_timeout);