OSDN Git Service

scsi: target: split out helper for cxn timeout error stashing
authorDavid Disseldorp <ddiss@suse.de>
Sat, 13 Oct 2018 23:13:54 +0000 (01:13 +0200)
committerMartin K. Petersen <martin.petersen@oracle.com>
Tue, 16 Oct 2018 04:38:37 +0000 (00:38 -0400)
Replace existing nested code blocks with helper function calls.

Signed-off-by: David Disseldorp <ddiss@suse.de>
Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/target/iscsi/iscsi_target_erl0.c
drivers/target/iscsi/iscsi_target_util.c
drivers/target/iscsi/iscsi_target_util.h

index 718fe9a..1193cf8 100644 (file)
@@ -770,21 +770,8 @@ void iscsit_handle_time2retain_timeout(struct timer_list *t)
 
        pr_err("Time2Retain timer expired for SID: %u, cleaning up"
                        " iSCSI session.\n", sess->sid);
-       {
-       struct iscsi_tiqn *tiqn = tpg->tpg_tiqn;
-
-       if (tiqn) {
-               spin_lock(&tiqn->sess_err_stats.lock);
-               strcpy(tiqn->sess_err_stats.last_sess_fail_rem_name,
-                       (void *)sess->sess_ops->InitiatorName);
-               tiqn->sess_err_stats.last_sess_failure_type =
-                               ISCSI_SESS_ERR_CXN_TIMEOUT;
-               tiqn->sess_err_stats.cxn_timeout_errors++;
-               atomic_long_inc(&sess->conn_timeout_errors);
-               spin_unlock(&tiqn->sess_err_stats.lock);
-       }
-       }
 
+       iscsit_fill_cxn_timeout_err_stats(sess);
        spin_unlock_bh(&se_tpg->session_lock);
        iscsit_close_session(sess);
 }
index 931c51f..1227872 100644 (file)
@@ -933,22 +933,7 @@ void iscsit_handle_nopin_response_timeout(struct timer_list *t)
        conn->nopin_response_timer_flags &= ~ISCSI_TF_RUNNING;
        spin_unlock_bh(&conn->nopin_timer_lock);
 
-       {
-       struct iscsi_portal_group *tpg = conn->sess->tpg;
-       struct iscsi_tiqn *tiqn = tpg->tpg_tiqn;
-
-       if (tiqn) {
-               spin_lock_bh(&tiqn->sess_err_stats.lock);
-               strcpy(tiqn->sess_err_stats.last_sess_fail_rem_name,
-                               conn->sess->sess_ops->InitiatorName);
-               tiqn->sess_err_stats.last_sess_failure_type =
-                               ISCSI_SESS_ERR_CXN_TIMEOUT;
-               tiqn->sess_err_stats.cxn_timeout_errors++;
-               atomic_long_inc(&conn->sess->conn_timeout_errors);
-               spin_unlock_bh(&tiqn->sess_err_stats.lock);
-       }
-       }
-
+       iscsit_fill_cxn_timeout_err_stats(sess);
        iscsit_cause_connection_reinstatement(conn, 0);
        iscsit_dec_conn_usage_count(conn);
 }
@@ -1407,3 +1392,22 @@ struct iscsi_tiqn *iscsit_snmp_get_tiqn(struct iscsi_conn *conn)
 
        return tpg->tpg_tiqn;
 }
+
+void iscsit_fill_cxn_timeout_err_stats(struct iscsi_session *sess)
+{
+       struct iscsi_portal_group *tpg = sess->tpg;
+       struct iscsi_tiqn *tiqn = tpg->tpg_tiqn;
+
+       if (!tiqn)
+               return;
+
+       spin_lock_bh(&tiqn->sess_err_stats.lock);
+       strlcpy(tiqn->sess_err_stats.last_sess_fail_rem_name,
+                       sess->sess_ops->InitiatorName,
+                       sizeof(tiqn->sess_err_stats.last_sess_fail_rem_name));
+       tiqn->sess_err_stats.last_sess_failure_type =
+                       ISCSI_SESS_ERR_CXN_TIMEOUT;
+       tiqn->sess_err_stats.cxn_timeout_errors++;
+       atomic_long_inc(&sess->conn_timeout_errors);
+       spin_unlock_bh(&tiqn->sess_err_stats.lock);
+}
index d66dfc2..68e8480 100644 (file)
@@ -67,5 +67,6 @@ extern int rx_data(struct iscsi_conn *, struct kvec *, int, int);
 extern int tx_data(struct iscsi_conn *, struct kvec *, int, int);
 extern void iscsit_collect_login_stats(struct iscsi_conn *, u8, u8);
 extern struct iscsi_tiqn *iscsit_snmp_get_tiqn(struct iscsi_conn *);
+extern void iscsit_fill_cxn_timeout_err_stats(struct iscsi_session *);
 
 #endif /*** ISCSI_TARGET_UTIL_H ***/