Lines Matching full:list
34 struct io_wq_work_list *list) in wq_list_add_after() argument
41 list->last = node; in wq_list_add_after()
45 struct io_wq_work_list *list) in wq_list_add_tail() argument
48 if (!list->first) { in wq_list_add_tail()
49 list->last = node; in wq_list_add_tail()
50 WRITE_ONCE(list->first, node); in wq_list_add_tail()
52 list->last->next = node; in wq_list_add_tail()
53 list->last = node; in wq_list_add_tail()
57 static inline void wq_list_cut(struct io_wq_work_list *list, in wq_list_cut() argument
61 /* first in the list, if prev==NULL */ in wq_list_cut()
63 WRITE_ONCE(list->first, last->next); in wq_list_cut()
67 if (last == list->last) in wq_list_cut()
68 list->last = prev; in wq_list_cut()
72 static inline void wq_list_del(struct io_wq_work_list *list, in wq_list_del() argument
76 wq_list_cut(list, node, prev); in wq_list_del()
82 #define wq_list_empty(list) (READ_ONCE((list)->first) == NULL) argument
83 #define INIT_WQ_LIST(list) do { \ argument
84 (list)->first = NULL; \
85 (list)->last = NULL; \
89 struct io_wq_work_node list; member
95 if (!work->list.next) in wq_next_work()
98 return container_of(work->list.next, struct io_wq_work, list); in wq_next_work()