Patches 1-7 are cleanups mainly dealing with issue_flags conversions, misundertsandings of the flags and of the tw state. It'd be great to have even without even w/o the rest. 8-11 mandate ctx locking for task_work and finally removes the CQE caches, instead we post directly into the CQ. Note that the cache is used by multishot auxiliary completions. Patches 12-14 are additional cleanups that were sent out in a separate patchset before. Beware, there are problems reported coming from ublk testing, which may or may not be due to unrelated problems with for-next. v2: Add Patch 3, which fixes deadlock due to nested locking introduced in v1 Remove a fix, which was taken separately Pile up more cleanups (Patches 12-14) Pavel Begunkov (14): io_uring/cmd: kill one issue_flags to tw conversion io_uring/cmd: fix tw <-> issue_flags conversion io_uring/cmd: make io_uring_cmd_done irq safe io_uring/cmd: introduce io_uring_cmd_complete ublk: don't hard code IO_URING_F_UNLOCKED nvme/io_uring: don't hard code IO_URING_F_UNLOCKED io_uring/rw: avoid punting to io-wq directly io_uring: force tw ctx locking io_uring: remove struct io_tw_state::locked io_uring: refactor io_fill_cqe_req_aux io_uring: get rid of intermediate aux cqe caches io_uring: remove current check from complete_post io_uring: refactor io_req_complete_post() io_uring: clean up io_lockdep_assert_cq_locked drivers/block/ublk_drv.c | 18 ++-- drivers/nvme/host/ioctl.c | 9 +- include/linux/io_uring/cmd.h | 24 +++++ include/linux/io_uring_types.h | 5 +- io_uring/io_uring.c | 161 +++++++++------------------------ io_uring/io_uring.h | 17 +--- io_uring/net.c | 6 +- io_uring/poll.c | 3 +- io_uring/rw.c | 18 +--- io_uring/timeout.c | 8 +- io_uring/uring_cmd.c | 36 +++++--- io_uring/waitid.c | 2 +- 12 files changed, 122 insertions(+), 185 deletions(-) -- 2.44.0