target: remove TF_TIMER_STOP
TF_TIMER_STOP is useless as it only helps to mitigate a tiny race during deleting the timer. But given that we have cleared TF_ACTIVE at this point we already have another mitigation a few lines down the function. Signed-off-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Nicholas Bellinger <nab@linux-iscsi.org>
This commit is contained in:
parent
cdbb70bb4c
commit
e99d48a62b
|
@ -2066,10 +2066,6 @@ static void transport_task_timeout_handler(unsigned long data)
|
||||||
pr_debug("transport task timeout fired! task: %p cmd: %p\n", task, cmd);
|
pr_debug("transport task timeout fired! task: %p cmd: %p\n", task, cmd);
|
||||||
|
|
||||||
spin_lock_irqsave(&cmd->t_state_lock, flags);
|
spin_lock_irqsave(&cmd->t_state_lock, flags);
|
||||||
if (task->task_flags & TF_TIMER_STOP) {
|
|
||||||
spin_unlock_irqrestore(&cmd->t_state_lock, flags);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
task->task_flags &= ~TF_TIMER_RUNNING;
|
task->task_flags &= ~TF_TIMER_RUNNING;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -2153,14 +2149,12 @@ void __transport_stop_task_timer(struct se_task *task, unsigned long *flags)
|
||||||
if (!(task->task_flags & TF_TIMER_RUNNING))
|
if (!(task->task_flags & TF_TIMER_RUNNING))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
task->task_flags |= TF_TIMER_STOP;
|
|
||||||
spin_unlock_irqrestore(&cmd->t_state_lock, *flags);
|
spin_unlock_irqrestore(&cmd->t_state_lock, *flags);
|
||||||
|
|
||||||
del_timer_sync(&task->task_timer);
|
del_timer_sync(&task->task_timer);
|
||||||
|
|
||||||
spin_lock_irqsave(&cmd->t_state_lock, *flags);
|
spin_lock_irqsave(&cmd->t_state_lock, *flags);
|
||||||
task->task_flags &= ~TF_TIMER_RUNNING;
|
task->task_flags &= ~TF_TIMER_RUNNING;
|
||||||
task->task_flags &= ~TF_TIMER_STOP;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void transport_stop_all_task_timers(struct se_cmd *cmd)
|
static void transport_stop_all_task_timers(struct se_cmd *cmd)
|
||||||
|
|
|
@ -78,7 +78,6 @@ enum se_task_flags {
|
||||||
TF_TIMEOUT = (1 << 2),
|
TF_TIMEOUT = (1 << 2),
|
||||||
TF_REQUEST_STOP = (1 << 3),
|
TF_REQUEST_STOP = (1 << 3),
|
||||||
TF_TIMER_RUNNING = (1 << 4),
|
TF_TIMER_RUNNING = (1 << 4),
|
||||||
TF_TIMER_STOP = (1 << 5),
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/* Special transport agnostic struct se_cmd->t_states */
|
/* Special transport agnostic struct se_cmd->t_states */
|
||||||
|
|
Loading…
Reference in New Issue