Lines Matching refs:async_list
164 struct async_list { struct
261 struct async_list pending_async[2];
1273 static inline bool io_should_merge(struct async_list *al, struct kiocb *kiocb) in io_should_merge()
1303 struct async_list *async_list = &req->ctx->pending_async[rw]; in io_async_list_note() local
1307 if (io_should_merge(async_list, kiocb)) { in io_async_list_note()
1316 if (async_list->io_len + len <= max_bytes) { in io_async_list_note()
1318 async_list->io_len += len; in io_async_list_note()
1320 async_list->file = NULL; in io_async_list_note()
1325 if (async_list->file != filp) { in io_async_list_note()
1326 async_list->io_start = kiocb->ki_pos; in io_async_list_note()
1327 async_list->io_len = len; in io_async_list_note()
1328 async_list->file = filp; in io_async_list_note()
2121 static struct async_list *io_async_list_from_sqe(struct io_ring_ctx *ctx, in io_async_list_from_sqe()
2149 struct async_list *async_list; in io_sq_wq_submit_work() local
2154 async_list = io_async_list_from_sqe(ctx, req->submit.sqe); in io_sq_wq_submit_work()
2208 if (!async_list) in io_sq_wq_submit_work()
2216 if (list_empty(&async_list->list)) in io_sq_wq_submit_work()
2220 spin_lock(&async_list->lock); in io_sq_wq_submit_work()
2221 if (list_empty(&async_list->list)) { in io_sq_wq_submit_work()
2222 spin_unlock(&async_list->lock); in io_sq_wq_submit_work()
2225 list_splice_init(&async_list->list, &req_list); in io_sq_wq_submit_work()
2226 spin_unlock(&async_list->lock); in io_sq_wq_submit_work()
2237 if (async_list) { in io_sq_wq_submit_work()
2238 ret = atomic_dec_return(&async_list->cnt); in io_sq_wq_submit_work()
2239 while (!ret && !list_empty(&async_list->list)) { in io_sq_wq_submit_work()
2240 spin_lock(&async_list->lock); in io_sq_wq_submit_work()
2241 atomic_inc(&async_list->cnt); in io_sq_wq_submit_work()
2242 list_splice_init(&async_list->list, &req_list); in io_sq_wq_submit_work()
2243 spin_unlock(&async_list->lock); in io_sq_wq_submit_work()
2251 ret = atomic_dec_return(&async_list->cnt); in io_sq_wq_submit_work()
2268 static bool io_add_to_prev_work(struct async_list *list, struct io_kiocb *req) in io_add_to_prev_work()
2363 struct async_list *list; in __io_queue_sqe()