iscsi: Use TAILQ_FOREACH_SAFE instead of TAILQ_EMPTY + FIRST
This will simplify remove operation a little. Besides a few unnecessary blank lines are deleted. Change-Id: Ifd312e5a94ba0668d884dd5baf1ef1f2ebd4417c Signed-off-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-on: https://review.gerrithub.io/414562 Tested-by: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com> Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
03a52d0d32
commit
919252ce5e
@ -359,11 +359,10 @@ spdk_iscsi_conn_free_pdu(struct spdk_iscsi_conn *conn, struct spdk_iscsi_pdu *pd
|
||||
|
||||
static int spdk_iscsi_conn_free_tasks(struct spdk_iscsi_conn *conn)
|
||||
{
|
||||
struct spdk_iscsi_pdu *pdu;
|
||||
struct spdk_iscsi_task *iscsi_task;
|
||||
struct spdk_iscsi_pdu *pdu, *tmp_pdu;
|
||||
struct spdk_iscsi_task *iscsi_task, *tmp_iscsi_task;
|
||||
|
||||
while (!TAILQ_EMPTY(&conn->write_pdu_list)) {
|
||||
pdu = TAILQ_FIRST(&conn->write_pdu_list);
|
||||
TAILQ_FOREACH_SAFE(pdu, &conn->write_pdu_list, tailq, tmp_pdu) {
|
||||
TAILQ_REMOVE(&conn->write_pdu_list, pdu, tailq);
|
||||
if (pdu->task) {
|
||||
spdk_iscsi_task_put(pdu->task);
|
||||
@ -371,8 +370,7 @@ static int spdk_iscsi_conn_free_tasks(struct spdk_iscsi_conn *conn)
|
||||
spdk_put_pdu(pdu);
|
||||
}
|
||||
|
||||
while (!TAILQ_EMPTY(&conn->snack_pdu_list)) {
|
||||
pdu = TAILQ_FIRST(&conn->snack_pdu_list);
|
||||
TAILQ_FOREACH_SAFE(pdu, &conn->snack_pdu_list, tailq, tmp_pdu) {
|
||||
TAILQ_REMOVE(&conn->snack_pdu_list, pdu, tailq);
|
||||
if (pdu->task) {
|
||||
spdk_iscsi_task_put(pdu->task);
|
||||
@ -380,8 +378,7 @@ static int spdk_iscsi_conn_free_tasks(struct spdk_iscsi_conn *conn)
|
||||
spdk_put_pdu(pdu);
|
||||
}
|
||||
|
||||
while (!TAILQ_EMPTY(&conn->queued_datain_tasks)) {
|
||||
iscsi_task = TAILQ_FIRST(&conn->queued_datain_tasks);
|
||||
TAILQ_FOREACH_SAFE(iscsi_task, &conn->queued_datain_tasks, link, tmp_iscsi_task) {
|
||||
TAILQ_REMOVE(&conn->queued_datain_tasks, iscsi_task, link);
|
||||
pdu = iscsi_task->pdu;
|
||||
spdk_iscsi_task_put(iscsi_task);
|
||||
@ -393,12 +390,10 @@ static int spdk_iscsi_conn_free_tasks(struct spdk_iscsi_conn *conn)
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
}
|
||||
|
||||
static void spdk_iscsi_conn_free(struct spdk_iscsi_conn *conn)
|
||||
{
|
||||
|
||||
if (conn == NULL) {
|
||||
return;
|
||||
}
|
||||
@ -463,7 +458,6 @@ static void spdk_iscsi_remove_conn(struct spdk_iscsi_conn *conn)
|
||||
spdk_free_sess(sess);
|
||||
}
|
||||
|
||||
|
||||
SPDK_DEBUGLOG(SPDK_LOG_ISCSI, "cleanup free conn\n");
|
||||
spdk_iscsi_conn_free(conn);
|
||||
}
|
||||
@ -767,15 +761,14 @@ static void
|
||||
process_completed_read_subtask_list(struct spdk_iscsi_conn *conn,
|
||||
struct spdk_iscsi_task *primary)
|
||||
{
|
||||
struct spdk_iscsi_task *tmp;
|
||||
struct spdk_iscsi_task *subtask, *tmp;
|
||||
|
||||
while (!TAILQ_EMPTY(&primary->subtask_list)) {
|
||||
tmp = TAILQ_FIRST(&primary->subtask_list);
|
||||
if (tmp->scsi.offset == primary->bytes_completed) {
|
||||
TAILQ_REMOVE(&primary->subtask_list, tmp, subtask_link);
|
||||
primary->bytes_completed += tmp->scsi.length;
|
||||
spdk_iscsi_task_response(conn, tmp);
|
||||
spdk_iscsi_task_put(tmp);
|
||||
TAILQ_FOREACH_SAFE(subtask, &primary->subtask_list, subtask_link, tmp) {
|
||||
if (subtask->scsi.offset == primary->bytes_completed) {
|
||||
TAILQ_REMOVE(&primary->subtask_list, subtask, subtask_link);
|
||||
primary->bytes_completed += subtask->scsi.length;
|
||||
spdk_iscsi_task_response(conn, subtask);
|
||||
spdk_iscsi_task_put(subtask);
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
@ -788,7 +781,6 @@ process_read_task_completion(struct spdk_iscsi_conn *conn,
|
||||
struct spdk_iscsi_task *primary)
|
||||
{
|
||||
struct spdk_iscsi_task *tmp;
|
||||
bool flag = false;
|
||||
|
||||
if (task->scsi.status != SPDK_SCSI_STATUS_GOOD) {
|
||||
TAILQ_FOREACH(tmp, &primary->subtask_list, subtask_link) {
|
||||
@ -801,13 +793,11 @@ process_read_task_completion(struct spdk_iscsi_conn *conn,
|
||||
TAILQ_FOREACH(tmp, &primary->subtask_list, subtask_link) {
|
||||
if (task->scsi.offset < tmp->scsi.offset) {
|
||||
TAILQ_INSERT_BEFORE(tmp, task, subtask_link);
|
||||
flag = true;
|
||||
break;
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (!flag) {
|
||||
TAILQ_INSERT_TAIL(&primary->subtask_list, task, subtask_link);
|
||||
}
|
||||
|
||||
TAILQ_INSERT_TAIL(&primary->subtask_list, task, subtask_link);
|
||||
return;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user