From 75e79302c3b8e0f8b300e342408b11def1bfeb2a Mon Sep 17 00:00:00 2001 From: Maurizio Lombardi Date: Sat, 15 Oct 2022 17:59:56 +0200 Subject: [PATCH 3/4] target: iscsi: use the login structure to access the data Also removed the zero_tsih field in the login structure because it's a duplicate of "leading_connection" Signed-off-by: Maurizio Lombardi --- drivers/target/iscsi/iscsi_target_login.c | 11 ++++------- drivers/target/iscsi/iscsi_target_nego.c | 4 ++-- include/target/iscsi/iscsi_target_core.h | 1 - 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/drivers/target/iscsi/iscsi_target_login.c b/drivers/target/iscsi/iscsi_target_login.c index 56b87964dcad..b4ceb783923a 100644 --- a/drivers/target/iscsi/iscsi_target_login.c +++ b/drivers/target/iscsi/iscsi_target_login.c @@ -1235,7 +1235,6 @@ static int __iscsi_target_login_thread(struct iscsi_np *np) struct iscsit_conn *conn = NULL; struct iscsi_login *login; struct iscsi_portal_group *tpg = NULL; - struct iscsi_login_req *pdu; struct iscsi_tpg_np *tpg_np; bool new_sess = false; @@ -1302,12 +1301,11 @@ static int __iscsi_target_login_thread(struct iscsi_np *np) goto new_sess_out; buffer = &login->req[0]; - pdu = (struct iscsi_login_req *)buffer; /* * Used by iscsit_tx_login_rsp() for Login Resonses PDUs * when Status-Class != 0. */ - conn->login_itt = pdu->itt; + conn->login_itt = login->init_task_tag; spin_lock_bh(&np->np_thread_lock); if (np->np_thread_state != ISCSI_NP_THREAD_ACTIVE) { @@ -1329,11 +1327,11 @@ static int __iscsi_target_login_thread(struct iscsi_np *np) pr_debug("Moving to TARG_CONN_STATE_IN_LOGIN.\n"); conn->conn_state = TARG_CONN_STATE_IN_LOGIN; - if (iscsi_login_check_initiator_version(conn, pdu->max_version, - pdu->min_version) < 0) + if (iscsi_login_check_initiator_version(conn, login->version_max, + login->version_min) < 0) goto new_sess_out; - zero_tsih = (pdu->tsih == 0x0000); + zero_tsih = login->leading_connection; if (zero_tsih) { /* * This is the leading connection of a new session. @@ -1367,7 +1365,6 @@ static int __iscsi_target_login_thread(struct iscsi_np *np) tpg = conn->tpg; goto new_sess_out; } - login->zero_tsih = zero_tsih; if (conn->sess) conn->sess->se_sess->sup_prot_ops = diff --git a/drivers/target/iscsi/iscsi_target_nego.c b/drivers/target/iscsi/iscsi_target_nego.c index f2919319ad38..909ec1a72a2e 100644 --- a/drivers/target/iscsi/iscsi_target_nego.c +++ b/drivers/target/iscsi/iscsi_target_nego.c @@ -526,7 +526,7 @@ static bool iscsi_target_sk_check_and_clear(struct iscsit_conn *conn, unsigned i static void iscsi_target_login_drop(struct iscsit_conn *conn, struct iscsi_login *login) { - bool zero_tsih = login->zero_tsih; + bool zero_tsih = login->leading_connection; iscsi_remove_failed_auth_entry(conn); iscsi_target_nego_release(conn); @@ -561,7 +561,7 @@ static void iscsi_target_do_login_rx(struct work_struct *work) struct iscsi_portal_group *tpg = conn->tpg; struct iscsi_tpg_np *tpg_np = conn->tpg_np; struct conn_timeout timeout; - int rc, zero_tsih = login->zero_tsih; + int rc, zero_tsih = login->leading_connection; bool state; pr_debug("entering iscsi_target_do_login_rx, conn: %p, %s:%d\n", diff --git a/include/target/iscsi/iscsi_target_core.h b/include/target/iscsi/iscsi_target_core.h index 94d06ddfd80a..5e8f877488e3 100644 --- a/include/target/iscsi/iscsi_target_core.h +++ b/include/target/iscsi/iscsi_target_core.h @@ -699,7 +699,6 @@ struct iscsi_login { u8 version_max; u8 login_complete; u8 login_failed; - bool zero_tsih; char isid[6]; u32 cmd_sn; itt_t init_task_tag; -- 2.31.1