Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit c9a03c12 authored by Nicholas Bellinger's avatar Nicholas Bellinger
Browse files

iscsi-target: Fix iscsit_transport reference leak during NP thread reset



This patch fixes a bug in __iscsi_target_login_thread() where an explicit
network portal thread reset ends up leaking the iscsit_transport module
reference, along with the associated iscsi_conn allocation.

This manifests itself with iser-target where a NP reset causes the extra
iscsit_transport reference to be taken in iscsit_conn_set_transport()
during the reset, which prevents the ib_isert module from being unloaded
after the NP thread shutdown has finished.

Cc: stable@vger.kernel.org # v3.10+
Signed-off-by: default avatarNicholas Bellinger <nab@linux-iscsi.org>
parent 9d86a2be
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -1163,12 +1163,11 @@ static int __iscsi_target_login_thread(struct iscsi_np *np)
		if (np->np_thread_state == ISCSI_NP_THREAD_RESET) {
			spin_unlock_bh(&np->np_thread_lock);
			complete(&np->np_restart_comp);
			if (ret == -ENODEV) {
			iscsit_put_transport(conn->conn_transport);
			kfree(conn);
			conn = NULL;
			if (ret == -ENODEV)
				goto out;
			}
			/* Get another socket */
			return 1;
		}