Lines Matching refs:timeout
14 #include "timeout.h"
32 /* timeout update */
43 struct io_timeout *timeout = io_kiocb_to_cmd(req, struct io_timeout);
46 return !timeout->off || data->flags & IORING_TIMEOUT_MULTISHOT;
57 static inline bool io_timeout_finish(struct io_timeout *timeout,
63 if (!timeout->off || (timeout->repeats && --timeout->repeats))
73 struct io_timeout *timeout = io_kiocb_to_cmd(req, struct io_timeout);
77 if (!io_timeout_finish(timeout, data)) {
81 list_add(&timeout->list, ctx->timeout_list.prev);
97 struct io_timeout *timeout;
100 timeout = list_first_entry(list, struct io_timeout, list);
101 list_del_init(&timeout->list);
102 req = cmd_to_io_kiocb(timeout);
117 struct io_timeout *timeout = io_kiocb_to_cmd(req, struct io_timeout);
121 list_move_tail(&timeout->list, list);
127 struct io_timeout *timeout, *tmp;
134 list_for_each_entry_safe(timeout, tmp, &ctx->timeout_list, list) {
135 struct io_kiocb *req = cmd_to_io_kiocb(timeout);
148 events_needed = timeout->target_seq - ctx->cq_last_tm_flush;
242 struct io_timeout *timeout = io_kiocb_to_cmd(link, struct io_timeout);
245 timeout->head = NULL;
247 list_del(&timeout->list);
259 struct io_timeout *timeout = io_kiocb_to_cmd(req, struct io_timeout);
264 list_del_init(&timeout->list);
282 struct io_timeout *timeout;
286 list_for_each_entry(timeout, &ctx->timeout_list, list) {
287 struct io_kiocb *tmp = cmd_to_io_kiocb(timeout);
300 timeout = io_kiocb_to_cmd(req, struct io_timeout);
301 list_del_init(&timeout->list);
322 struct io_timeout *timeout = io_kiocb_to_cmd(req, struct io_timeout);
323 struct io_kiocb *prev = timeout->prev;
351 struct io_timeout *timeout = io_kiocb_to_cmd(req, struct io_timeout);
356 prev = timeout->head;
357 timeout->head = NULL;
368 list_del(&timeout->list);
369 timeout->prev = prev;
398 struct io_timeout *timeout;
401 list_for_each_entry(timeout, &ctx->ltimeout_list, list) {
402 struct io_kiocb *tmp = cmd_to_io_kiocb(timeout);
426 struct io_timeout *timeout = io_kiocb_to_cmd(req, struct io_timeout);
432 timeout->off = 0; /* noseq */
436 list_add_tail(&timeout->list, &ctx->timeout_list);
466 /* timeout removal doesn't support flags */
480 * Remove or update an existing timeout command
515 struct io_timeout *timeout = io_kiocb_to_cmd(req, struct io_timeout);
536 INIT_LIST_HEAD(&timeout->list);
537 timeout->off = off;
544 timeout->repeats = 0;
546 timeout->repeats = off;
571 timeout->head = link->last;
593 struct io_timeout *timeout = io_kiocb_to_cmd(req, struct io_timeout);
597 u32 tail, off = timeout->off;
603 * timeout event to be satisfied. If it isn't set, then this is
604 * a pure timeout request, sequence isn't used.
612 timeout->target_seq = tail + off;
635 list_add(&timeout->list, entry);
643 struct io_timeout *timeout = io_kiocb_to_cmd(req, struct io_timeout);
651 if (timeout->head) {
656 list_add_tail(&timeout->list, &ctx->ltimeout_list);
685 struct io_timeout *timeout, *tmp;
694 list_for_each_entry_safe(timeout, tmp, &ctx->timeout_list, list) {
695 struct io_kiocb *req = cmd_to_io_kiocb(timeout);