target: Minor cleanups to core_tmr_drain_tmr_list
authorJoern Engel <joern@logfs.org>
Wed, 26 Oct 2011 21:22:19 +0000 (14:22 -0700)
committerNicholas Bellinger <nab@linux-iscsi.org>
Thu, 27 Oct 2011 01:00:29 +0000 (01:00 +0000)
This patch adds a handful minor cleanups to core_tmr_drain_tmr_list() that
remove an unnecessary NULL check, use list_for_each_entry_safe() instead of
list_entry(), and makes the drain_tmr_list walk use *tmr_p instead of
directly referencing the passed *tmr function parameter.

Signed-off-by: Joern Engel <joern@logfs.org>
Cc: Joern Engel <joern@logfs.org>
Reviewed-by: Roland Dreier <roland@purestorage.com>
Cc: Roland Dreier <roland@purestorage.com>
Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
drivers/target/target_core_tmr.c

index 391d6d8ac9623866f49fccc79c8cdd436df5a2c5..2b0c528c1dd9e1e0d0ca56900cec3e8bd14a4d45 100644 (file)
@@ -118,7 +118,7 @@ static void core_tmr_drain_tmr_list(
                /*
                 * Allow the received TMR to return with FUNCTION_COMPLETE.
                 */
-               if (tmr && (tmr_p == tmr))
+               if (tmr_p == tmr)
                        continue;
 
                cmd = tmr_p->task_cmd;
@@ -151,15 +151,14 @@ static void core_tmr_drain_tmr_list(
        }
        spin_unlock_irqrestore(&dev->se_tmr_lock, flags);
 
-       while (!list_empty(&drain_tmr_list)) {
-               tmr = list_entry(drain_tmr_list.next, struct se_tmr_req, tmr_list);
-               list_del(&tmr->tmr_list);
-               cmd = tmr->task_cmd;
+       list_for_each_entry_safe(tmr_p, tmr_pp, &drain_tmr_list, tmr_list) {
+               list_del(&tmr_p->tmr_list);
+               cmd = tmr_p->task_cmd;
 
                pr_debug("LUN_RESET: %s releasing TMR %p Function: 0x%02x,"
                        " Response: 0x%02x, t_state: %d\n",
-                       (preempt_and_abort_list) ? "Preempt" : "", tmr,
-                       tmr->function, tmr->response, cmd->t_state);
+                       (preempt_and_abort_list) ? "Preempt" : "", tmr_p,
+                       tmr_p->function, tmr_p->response, cmd->t_state);
 
                transport_cmd_finish_abort(cmd, 1);
        }