RDMA/isert: Fix a recently introduced regression related to logout
Subsystems (3)
PATCH 1/1 RDMA/isert: Fix a recently introduced regression related to logout
iscsit_close_connection() calls isert_wait_conn(). Due to commit e9d3009cb936 both functions call target_wait_for_sess_cmds() although that last function should be called only once. Fix this by removing the target_wait_for_sess_cmds() call from isert_wait_conn() and by only calling isert_wait_conn() after target_wait_for_sess_cmds().
--- drivers/infiniband/ulp/isert/ib_isert.c | 12 ------------ drivers/target/iscsi/iscsi_target.c | 6 +++--- 2 files changed, 3 insertions(+), 15 deletions(-)
drivers/infiniband/ulp/isert/ib_isert.c +0 -12
@@ -2575,17 +2575,6 @@ isert_wait4logout(struct isert_conn *isert_conn) } } -static void -isert_wait4cmds (struct iscsi_conn *conn) -{ -isert_info ("iscsi_conn %p\n" , conn); - -if (conn->sess) { -target_sess_cmd_list_set_waiting (conn->sess->se_sess); -target_wait_for_sess_cmds (conn->sess->se_sess); - } -} -/** * isert_put_unsol_pending_cmds() - Drop commands waiting for * unsolicitate dataout
@@ -2633,7 +2622,6 @@ static void isert_wait_conn(struct iscsi_conn *conn)ib_drain_qp (isert_conn->qp);isert_put_unsol_pending_cmds (conn); -isert_wait4cmds (conn);isert_wait4logout (isert_conn);queue_work (isert_release_wq, &isert_conn->release_work);
drivers/target/iscsi/iscsi_target.c +3 -3
@@ -4149,9 +4149,6 @@ int iscsit_close_connection(iscsit_stop_nopin_response_timer (conn);iscsit_stop_nopin_timer (conn); -if (conn->conn_transport->iscsit_wait_conn) - conn->conn_transport->iscsit_wait_conn (conn); -/* * During Connection recovery drop unacknowledged out of order * commands for this connection, and prepare the other commands
@@ -4237,6 +4234,9 @@ int iscsit_close_connection(target_sess_cmd_list_set_waiting (sess->se_sess);target_wait_for_sess_cmds (sess->se_sess); +if (conn->conn_transport->iscsit_wait_conn) + conn->conn_transport->iscsit_wait_conn (conn); +ahash_request_free (conn->conn_tx_hash);if (conn->conn_rx_hash) {struct crypto_ahash *tfm;
Quoted 9 lines
Subject: [PATCH] RDMA/isert: Fix a recently introduced regression related to logout
iscsit_close_connection()callsisert_wait_conn(). Due to commite9d3009cb936both functions calltarget_wait_for_sess_cmds()although that last function should be called only once. Fix this by removing thetarget_wait_for_sess_cmds()call fromisert_wait_conn()and by only callingisert_wait_conn()aftertarget_wait_for_sess_cmds().
Quoted 4 lines
Reported-by Rahul Kundu <[email protected]>Fixes e9d3009cb936 ("scsi: target: iscsi: Wait for all commands to finishbefore freeing a session").
Signed-off-by Bart Van Assche <[email protected]>
Mike
Bart,
Martin K. Petersen
AppliedBart,
Quoted 5 lines
iscsit_close_connection()callsisert_wait_conn(). Due to commite9d3009cb936both functions calltarget_wait_for_sess_cmds()although that last function should be called only once. Fix this by removing thetarget_wait_for_sess_cmds()call fromisert_wait_conn()and by only callingisert_wait_conn()aftertarget_wait_for_sess_cmds().
Applied to 5.5/scsi-fixes, thanks!
Signature · 1 line
Martin K. Petersen Oracle Linux Engineering