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:
Shuhei Matsumoto 2018-06-11 13:43:39 +09:00 committed by Jim Harris
parent 03a52d0d32
commit 919252ce5e

View File

@ -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;
}