Apart from unrelated first patch, this persues two goals: 1. start preparing io_uring to move resources handling into opcode specific functions, and thus for splice(2) 2. make the first step towards some long-standing optimisation ideas Basically, it makes struct io_submit_state embedded into ctx, so easily accessible and persistent, and then plays a bit around that. v2: rebase Pavel Begunkov (8): io_uring: leave a comment for drain_next io_uring: always pass non-null io_submit_state io_uring: place io_submit_state into ctx io_uring: move ring_fd into io_submit_state io_uring: move cur_mm into io_submit_state io_uring: move *link into io_submit_state io_uring: persistent req bulk allocation cache io_uring: optimise req bulk allocation cache fs/io_uring.c | 219 +++++++++++++++++++++++++++----------------------- 1 file changed, 120 insertions(+), 99 deletions(-) -- 2.24.0