target: Minor cleanups to core_tmr_drain_tmr_list
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>
This commit is contained in:
parent
6eb40b2af4
commit
abc1fd4f92
1 changed files with 6 additions and 7 deletions
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue