forked from luck/tmp_suning_uos_patched
[SCSI] libiscsi: clear mtask
Consolidate the mtask clearing code. Signed-off-by: Mike Christie <michaelc@cs.wisc.edu> Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
This commit is contained in:
parent
779ea1207b
commit
05db888a46
@ -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);
|
||||
if (rc)
|
||||
rc = iscsi_xmit_mtask(conn);
|
||||
if (rc)
|
||||
goto again;
|
||||
}
|
||||
/* done with this mtask */
|
||||
conn->mtask = NULL;
|
||||
}
|
||||
|
||||
return -ENODATA;
|
||||
|
Loading…
Reference in New Issue
Block a user