diff --git a/fs/io_uring.c b/fs/io_uring.c index f3078708fdb86cf394dea9d0b28cd27d876277e0..98552a1852ea77077c9fd566a72e453a372db843 100644 --- a/fs/io_uring.c +++ b/fs/io_uring.c @@ -6259,9 +6259,8 @@ static enum hrtimer_restart io_link_timeout_fn(struct hrtimer *timer) if (!list_empty(&req->link_list)) { prev = list_entry(req->link_list.prev, struct io_kiocb, link_list); - if (refcount_inc_not_zero(&prev->refs)) - list_del_init(&req->link_list); - else + list_del_init(&req->link_list); + if (!refcount_inc_not_zero(&prev->refs)) prev = NULL; }