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

Commit 05db888a authored by Mike Christie's avatar Mike Christie Committed by James Bottomley
Browse files

[SCSI] libiscsi: clear mtask



Consolidate the mtask clearing code.

Signed-off-by: default avatarMike Christie <michaelc@cs.wisc.edu>
Signed-off-by: default avatarJames Bottomley <James.Bottomley@SteelEye.com>
parent 779ea120
Loading
Loading
Loading
Loading
+8 −11
Original line number Diff line number Diff line
@@ -577,7 +577,7 @@ void iscsi_conn_failure(struct iscsi_conn *conn, enum iscsi_err err)
}
EXPORT_SYMBOL_GPL(iscsi_conn_failure);

static int iscsi_xmit_imm_task(struct iscsi_conn *conn)
static int iscsi_xmit_mtask(struct iscsi_conn *conn)
{
	struct iscsi_hdr *hdr = conn->mtask->hdr;
	int rc, was_logout = 0;
@@ -591,6 +591,9 @@ static int iscsi_xmit_imm_task(struct iscsi_conn *conn)
	if (rc)
		return rc;

	/* done with this in-progress mtask */
	conn->mtask = NULL;

	if (was_logout) {
		set_bit(ISCSI_SUSPEND_BIT, &conn->suspend_tx);
		return -ENODATA;
@@ -643,11 +646,9 @@ static int iscsi_data_xmit(struct iscsi_conn *conn)
		conn->ctask = NULL;
	}
	if (conn->mtask) {
		rc = iscsi_xmit_imm_task(conn);
		rc = iscsi_xmit_mtask(conn);
	        if (rc)
		        goto again;
		/* done with this in-progress mtask */
		conn->mtask = NULL;
	}

	/* process immediate first */
@@ -658,12 +659,10 @@ static int iscsi_data_xmit(struct iscsi_conn *conn)
			list_add_tail(&conn->mtask->running,
				      &conn->mgmt_run_list);
			spin_unlock_bh(&conn->session->lock);
			rc = iscsi_xmit_imm_task(conn);
			rc = iscsi_xmit_mtask(conn);
		        if (rc)
			        goto again;
	        }
		/* done with this mtask */
		conn->mtask = NULL;
	}

	/* process command queue */
@@ -701,12 +700,10 @@ static int iscsi_data_xmit(struct iscsi_conn *conn)
			list_add_tail(&conn->mtask->running,
				      &conn->mgmt_run_list);
			spin_unlock_bh(&conn->session->lock);
		        rc = tt->xmit_mgmt_task(conn, conn->mtask);
			rc = iscsi_xmit_mtask(conn);
		        if (rc)
			        goto again;
	        }
		/* done with this mtask */
		conn->mtask = NULL;
	}

	return -ENODATA;