Skip to content

Commit 436f4ae

Browse files
committed
Revert "DLPX-84985 target: iscsi: fix deadlock in the iSCSI login code (#22)"
Upstream fixed this bug via https://git.launchpad.net/~ubuntu-kernel/ubuntu/+source/linux/+git/noble/commit/?id=13247018d68f21e7132924b9853f7e2c423588b6
1 parent 52c31c2 commit 436f4ae

File tree

1 file changed

+3
-14
lines changed

1 file changed

+3
-14
lines changed

drivers/target/iscsi/iscsi_target_nego.c

Lines changed: 3 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -472,18 +472,12 @@ static int iscsi_target_do_login(struct iscsit_conn *, struct iscsi_login *);
472472

473473
static bool __iscsi_target_sk_check_close(struct sock *sk)
474474
{
475-
switch (sk->sk_state) {
476-
case TCP_FIN_WAIT1:
477-
case TCP_FIN_WAIT2:
478-
case TCP_CLOSE_WAIT:
479-
case TCP_LAST_ACK:
480-
case TCP_CLOSE:
481-
pr_debug("__iscsi_target_sk_check_close: socket closing,"
475+
if (sk->sk_state == TCP_CLOSE_WAIT || sk->sk_state == TCP_CLOSE) {
476+
pr_debug("__iscsi_target_sk_check_close: TCP_CLOSE_WAIT|TCP_CLOSE,"
482477
"returning TRUE\n");
483478
return true;
484-
default:
485-
return false;
486479
}
480+
return false;
487481
}
488482

489483
static bool iscsi_target_sk_check_close(struct iscsit_conn *conn)
@@ -645,7 +639,6 @@ static void iscsi_target_do_login_rx(struct work_struct *work)
645639
} else if (rc == 1) {
646640
iscsit_stop_login_timer(conn);
647641
cancel_delayed_work(&conn->login_work);
648-
iscsit_stop_login_timer(conn);
649642
iscsi_target_nego_release(conn);
650643
iscsi_post_login_handler(np, conn, zero_tsih);
651644
iscsit_deaccess_np(np, tpg, tpg_np);
@@ -656,7 +649,6 @@ static void iscsi_target_do_login_rx(struct work_struct *work)
656649
iscsi_target_restore_sock_callbacks(conn);
657650
iscsit_stop_login_timer(conn);
658651
cancel_delayed_work(&conn->login_work);
659-
iscsit_stop_login_timer(conn);
660652
iscsi_target_login_drop(conn, login);
661653
iscsit_deaccess_np(np, tpg, tpg_np);
662654
}
@@ -1360,9 +1352,6 @@ int iscsi_target_start_negotiation(
13601352
set_bit(LOGIN_FLAGS_INITIAL_PDU, &conn->login_flags);
13611353
write_unlock_bh(&sk->sk_callback_lock);
13621354
}
1363-
1364-
iscsit_start_login_timer(conn);
1365-
13661355
/*
13671356
* If iscsi_target_do_login returns zero to signal more PDU
13681357
* exchanges are required to complete the login, go ahead and

0 commit comments

Comments
 (0)