diff options
| author | Jens Axboe <axboe@kernel.dk> | 2025-02-20 17:59:27 +0300 |
|---|---|---|
| committer | Jens Axboe <axboe@kernel.dk> | 2025-02-20 17:59:27 +0300 |
| commit | 90611bb3e170c481fe31e06cd528548341e5cafd (patch) | |
| tree | 2824a0f1d061d420eebd0f924362cceff85ca526 /include | |
| parent | 87a132e73910e8689902aed7f2fc229d6908383b (diff) | |
| parent | 62aa9805d123165102273eb277f776aaca908e0e (diff) | |
| download | linux-90611bb3e170c481fe31e06cd528548341e5cafd.tar.xz | |
Merge branch 'for-6.15/io_uring' into for-6.15/io_uring-epoll-wait
* for-6.15/io_uring: (30 commits)
io_uring: use lockless_cq flag in io_req_complete_post()
io_uring: pass struct io_tw_state by value
io_uring: introduce type alias for io_tw_state
io_uring/rsrc: avoid NULL check in io_put_rsrc_node()
io_uring: pass ctx instead of req to io_init_req_drain()
io_uring: use IO_REQ_LINK_FLAGS more
io_uring/net: improve recv bundles
io_uring/waitid: use generic io_cancel_remove() helper
io_uring/futex: use generic io_cancel_remove() helper
io_uring/cancel: add generic cancel helper
io_uring/waitid: convert to io_cancel_remove_all()
io_uring/futex: convert to io_cancel_remove_all()
io_uring/cancel: add generic remove_all helper
io_uring/kbuf: uninline __io_put_kbufs
io_uring/kbuf: introduce io_kbuf_drop_legacy()
io_uring/kbuf: open code __io_put_kbuf()
io_uring/kbuf: remove legacy kbuf caching
io_uring/kbuf: simplify __io_put_kbuf
io_uring/kbuf: move locking into io_kbuf_drop()
io_uring/kbuf: remove legacy kbuf kmem cache
...
Diffstat (limited to 'include')
| -rw-r--r-- | include/linux/io_uring_types.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/include/linux/io_uring_types.h b/include/linux/io_uring_types.h index 3def525a1da3..123e69368730 100644 --- a/include/linux/io_uring_types.h +++ b/include/linux/io_uring_types.h @@ -360,7 +360,6 @@ struct io_ring_ctx { spinlock_t completion_lock; - struct list_head io_buffers_comp; struct list_head cq_overflow_list; struct hlist_head waitid_list; @@ -379,8 +378,6 @@ struct io_ring_ctx { unsigned int file_alloc_start; unsigned int file_alloc_end; - struct list_head io_buffers_cache; - /* Keep this last, we don't need it for the fast path */ struct wait_queue_head poll_wq; struct io_restriction restrictions; @@ -439,8 +436,15 @@ struct io_ring_ctx { struct io_mapped_region param_region; }; +/* + * Token indicating function is called in task work context: + * ctx->uring_lock is held and any completions generated will be flushed. + * ONLY core io_uring.c should instantiate this struct. + */ struct io_tw_state { }; +/* Alias to use in code that doesn't instantiate struct io_tw_state */ +typedef struct io_tw_state io_tw_token_t; enum { REQ_F_FIXED_FILE_BIT = IOSQE_FIXED_FILE_BIT, @@ -566,7 +570,7 @@ enum { REQ_F_HAS_METADATA = IO_REQ_FLAG(REQ_F_HAS_METADATA_BIT), }; -typedef void (*io_req_tw_func_t)(struct io_kiocb *req, struct io_tw_state *ts); +typedef void (*io_req_tw_func_t)(struct io_kiocb *req, io_tw_token_t tw); struct io_task_work { struct llist_node node; |
