Lines Matching full:list
42 struct io_wq_work_list *list) in wq_list_add_after() argument
49 list->last = node; in wq_list_add_after()
53 struct io_wq_work_list *list) in wq_list_add_tail() argument
55 if (!list->first) { in wq_list_add_tail()
56 list->last = node; in wq_list_add_tail()
57 WRITE_ONCE(list->first, node); in wq_list_add_tail()
59 list->last->next = node; in wq_list_add_tail()
60 list->last = node; in wq_list_add_tail()
64 static inline void wq_list_cut(struct io_wq_work_list *list, in wq_list_cut() argument
68 /* first in the list, if prev==NULL */ in wq_list_cut()
70 WRITE_ONCE(list->first, last->next); in wq_list_cut()
74 if (last == list->last) in wq_list_cut()
75 list->last = prev; in wq_list_cut()
79 static inline void wq_list_del(struct io_wq_work_list *list, in wq_list_del() argument
83 wq_list_cut(list, node, prev); in wq_list_del()
89 #define wq_list_empty(list) (READ_ONCE((list)->first) == NULL) argument
90 #define INIT_WQ_LIST(list) do { \ argument
91 (list)->first = NULL; \
92 (list)->last = NULL; \
96 struct io_wq_work_node list; member
103 if (!work->list.next) in wq_next_work()
106 return container_of(work->list.next, struct io_wq_work, list); in wq_next_work()