mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 18:13:41 +02:00
io_uring/timeout: splice timed out link in timeout handler
A previous commit deferred this to the task_work part of it, so it could
be protected by ->uring_lock. But that's actually not necessary here,
and in fact the head clearing is not enough to make that safe. For those
two reasons, just re-instate the local splicing.
Fixes: 49ae66eb8c ("io_uring: defer linked-timeout chain splice out of hrtimer context")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
cf18e36455
commit
3d879647fb
|
|
@ -417,8 +417,10 @@ static enum hrtimer_restart io_link_timeout_fn(struct hrtimer *timer)
|
|||
* done in io_req_task_link_timeout(), if needed.
|
||||
*/
|
||||
if (prev) {
|
||||
if (!req_ref_inc_not_zero(prev))
|
||||
if (!req_ref_inc_not_zero(prev)) {
|
||||
io_remove_next_linked(prev);
|
||||
prev = NULL;
|
||||
}
|
||||
}
|
||||
list_del(&timeout->list);
|
||||
timeout->prev = prev;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user