Merge tag 'pci-v4.13-fixes-1' of git://git.kernel.org/pub/scm/linux/kernel/git/helgaa...
[sfrench/cifs-2.6.git] / drivers / target / iscsi / iscsi_target_nego.c
index 6f88b31242b0562b297e60fdf61552719ed7a97c..7a6751fecd323cf948a77e4508430487b3cc4717 100644 (file)
@@ -655,28 +655,6 @@ err:
        iscsit_deaccess_np(np, tpg, tpg_np);
 }
 
-static void iscsi_target_do_cleanup(struct work_struct *work)
-{
-       struct iscsi_conn *conn = container_of(work,
-                               struct iscsi_conn, login_cleanup_work.work);
-       struct sock *sk = conn->sock->sk;
-       struct iscsi_login *login = conn->login;
-       struct iscsi_np *np = login->np;
-       struct iscsi_portal_group *tpg = conn->tpg;
-       struct iscsi_tpg_np *tpg_np = conn->tpg_np;
-
-       pr_debug("Entering iscsi_target_do_cleanup\n");
-
-       cancel_delayed_work_sync(&conn->login_work);
-       conn->orig_state_change(sk);
-
-       iscsi_target_restore_sock_callbacks(conn);
-       iscsi_target_login_drop(conn, login);
-       iscsit_deaccess_np(np, tpg, tpg_np);
-
-       pr_debug("iscsi_target_do_cleanup done()\n");
-}
-
 static void iscsi_target_sk_state_change(struct sock *sk)
 {
        struct iscsi_conn *conn;
@@ -886,7 +864,8 @@ static int iscsi_target_handle_csg_zero(
                        SENDER_TARGET,
                        login->rsp_buf,
                        &login->rsp_length,
-                       conn->param_list);
+                       conn->param_list,
+                       conn->tpg->tpg_attrib.login_keys_workaround);
        if (ret < 0)
                return -1;
 
@@ -956,7 +935,8 @@ static int iscsi_target_handle_csg_one(struct iscsi_conn *conn, struct iscsi_log
                        SENDER_TARGET,
                        login->rsp_buf,
                        &login->rsp_length,
-                       conn->param_list);
+                       conn->param_list,
+                       conn->tpg->tpg_attrib.login_keys_workaround);
        if (ret < 0) {
                iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
                                ISCSI_LOGIN_STATUS_INIT_ERR);
@@ -1082,7 +1062,6 @@ int iscsi_target_locate_portal(
        int sessiontype = 0, ret = 0, tag_num, tag_size;
 
        INIT_DELAYED_WORK(&conn->login_work, iscsi_target_do_login_rx);
-       INIT_DELAYED_WORK(&conn->login_cleanup_work, iscsi_target_do_cleanup);
        iscsi_target_set_sock_callbacks(conn);
 
        login->np = np;
@@ -1331,7 +1310,6 @@ int iscsi_target_start_negotiation(
 
        if (ret < 0) {
                cancel_delayed_work_sync(&conn->login_work);
-               cancel_delayed_work_sync(&conn->login_cleanup_work);
                iscsi_target_restore_sock_callbacks(conn);
                iscsi_remove_failed_auth_entry(conn);
        }