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

[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
...@@ -577,7 +577,7 @@ void iscsi_conn_failure(struct iscsi_conn *conn, enum iscsi_err err) ...@@ -577,7 +577,7 @@ void iscsi_conn_failure(struct iscsi_conn *conn, enum iscsi_err err)
} }
EXPORT_SYMBOL_GPL(iscsi_conn_failure); 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; struct iscsi_hdr *hdr = conn->mtask->hdr;
int rc, was_logout = 0; int rc, was_logout = 0;
...@@ -591,6 +591,9 @@ static int iscsi_xmit_imm_task(struct iscsi_conn *conn) ...@@ -591,6 +591,9 @@ static int iscsi_xmit_imm_task(struct iscsi_conn *conn)
if (rc) if (rc)
return rc; return rc;
/* done with this in-progress mtask */
conn->mtask = NULL;
if (was_logout) { if (was_logout) {
set_bit(ISCSI_SUSPEND_BIT, &conn->suspend_tx); set_bit(ISCSI_SUSPEND_BIT, &conn->suspend_tx);
return -ENODATA; return -ENODATA;
...@@ -643,11 +646,9 @@ static int iscsi_data_xmit(struct iscsi_conn *conn) ...@@ -643,11 +646,9 @@ static int iscsi_data_xmit(struct iscsi_conn *conn)
conn->ctask = NULL; conn->ctask = NULL;
} }
if (conn->mtask) { if (conn->mtask) {
rc = iscsi_xmit_imm_task(conn); rc = iscsi_xmit_mtask(conn);
if (rc) if (rc)
goto again; goto again;
/* done with this in-progress mtask */
conn->mtask = NULL;
} }
/* process immediate first */ /* process immediate first */
...@@ -658,12 +659,10 @@ static int iscsi_data_xmit(struct iscsi_conn *conn) ...@@ -658,12 +659,10 @@ static int iscsi_data_xmit(struct iscsi_conn *conn)
list_add_tail(&conn->mtask->running, list_add_tail(&conn->mtask->running,
&conn->mgmt_run_list); &conn->mgmt_run_list);
spin_unlock_bh(&conn->session->lock); spin_unlock_bh(&conn->session->lock);
rc = iscsi_xmit_imm_task(conn); rc = iscsi_xmit_mtask(conn);
if (rc) if (rc)
goto again; goto again;
} }
/* done with this mtask */
conn->mtask = NULL;
} }
/* process command queue */ /* process command queue */
...@@ -701,12 +700,10 @@ static int iscsi_data_xmit(struct iscsi_conn *conn) ...@@ -701,12 +700,10 @@ static int iscsi_data_xmit(struct iscsi_conn *conn)
list_add_tail(&conn->mtask->running, list_add_tail(&conn->mtask->running,
&conn->mgmt_run_list); &conn->mgmt_run_list);
spin_unlock_bh(&conn->session->lock); spin_unlock_bh(&conn->session->lock);
rc = tt->xmit_mgmt_task(conn, conn->mtask); rc = iscsi_xmit_mtask(conn);
if (rc) if (rc)
goto again; goto again;
} }
/* done with this mtask */
conn->mtask = NULL;
} }
return -ENODATA; return -ENODATA;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment