Commit c34f95e9 authored by Mike Christie's avatar Mike Christie Committed by Martin K. Petersen
Browse files

scsi: iscsi: Move iscsi_ep_disconnect()

This patch moves iscsi_ep_disconnect() so it can be called earlier in the
next patch.

Link: https://lore.kernel.org/r/20220408001314.5014-2-michael.christie@oracle.com


Tested-by: default avatarManish Rangankar <mrangankar@marvell.com>
Reviewed-by: default avatarLee Duncan <lduncan@suse.com>
Reviewed-by: default avatarChris Leech <cleech@redhat.com>
Signed-off-by: default avatarMike Christie <michael.christie@oracle.com>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent bcd8a452
Loading
Loading
Loading
Loading
+19 −19
Original line number Original line Diff line number Diff line
@@ -2217,6 +2217,25 @@ static void iscsi_stop_conn(struct iscsi_cls_conn *conn, int flag)
	ISCSI_DBG_TRANS_CONN(conn, "Stopping conn done.\n");
	ISCSI_DBG_TRANS_CONN(conn, "Stopping conn done.\n");
}
}


static void iscsi_ep_disconnect(struct iscsi_cls_conn *conn, bool is_active)
{
	struct iscsi_cls_session *session = iscsi_conn_to_session(conn);
	struct iscsi_endpoint *ep;

	ISCSI_DBG_TRANS_CONN(conn, "disconnect ep.\n");
	conn->state = ISCSI_CONN_FAILED;

	if (!conn->ep || !session->transport->ep_disconnect)
		return;

	ep = conn->ep;
	conn->ep = NULL;

	session->transport->unbind_conn(conn, is_active);
	session->transport->ep_disconnect(ep);
	ISCSI_DBG_TRANS_CONN(conn, "disconnect ep done.\n");
}

static int iscsi_if_stop_conn(struct iscsi_transport *transport,
static int iscsi_if_stop_conn(struct iscsi_transport *transport,
			      struct iscsi_uevent *ev)
			      struct iscsi_uevent *ev)
{
{
@@ -2257,25 +2276,6 @@ static int iscsi_if_stop_conn(struct iscsi_transport *transport,
	return 0;
	return 0;
}
}


static void iscsi_ep_disconnect(struct iscsi_cls_conn *conn, bool is_active)
{
	struct iscsi_cls_session *session = iscsi_conn_to_session(conn);
	struct iscsi_endpoint *ep;

	ISCSI_DBG_TRANS_CONN(conn, "disconnect ep.\n");
	conn->state = ISCSI_CONN_FAILED;

	if (!conn->ep || !session->transport->ep_disconnect)
		return;

	ep = conn->ep;
	conn->ep = NULL;

	session->transport->unbind_conn(conn, is_active);
	session->transport->ep_disconnect(ep);
	ISCSI_DBG_TRANS_CONN(conn, "disconnect ep done.\n");
}

static void iscsi_cleanup_conn_work_fn(struct work_struct *work)
static void iscsi_cleanup_conn_work_fn(struct work_struct *work)
{
{
	struct iscsi_cls_conn *conn = container_of(work, struct iscsi_cls_conn,
	struct iscsi_cls_conn *conn = container_of(work, struct iscsi_cls_conn,