From: Keith Busch <kbusch@xxxxxxxxxx> Changes from v4: A few cleanup prep patches from me and Pavel are at the beginning of this series. Uses Pavel's combined buffer lookup and import. This simplifies utilizing fixed buffers a bit later in the series, and obviates any need to generically handle fixed buffers. This also fixes up the net zero-copy notif assignemnet that Ming pointed out. Included the nvme uring_cmd fix for using kernel registered bvecs from Xinyu. Used speculative safe array indexes when registering a new bvec (Pavel). Encode the allowed direction as bit flags (Caleb, Pavel). Incorporated various cleanups suggested by Caleb. Keith Busch (7): io_uring/rsrc: remove redundant check for valid imu io_uring/nop: reuse req->buf_index io_uring/rw: move fixed buffer import to issue path io_uring: add support for kernel registered bvecs ublk: zc register/unregister bvec io_uring: add abstraction for buf_table rsrc data io_uring: cache nodes and mapped buffers Pavel Begunkov (3): io_uring/net: reuse req->buf_index for sendzc io_uring/nvme: pass issue_flags to io_uring_cmd_import_fixed() io_uring: combine buffer lookup and import Xinyu Zhang (1): nvme: map uring_cmd data even if address is 0 drivers/block/ublk_drv.c | 117 +++++++++---- drivers/nvme/host/ioctl.c | 12 +- include/linux/io_uring/cmd.h | 13 +- include/linux/io_uring_types.h | 24 ++- include/uapi/linux/ublk_cmd.h | 4 + io_uring/fdinfo.c | 8 +- io_uring/filetable.c | 2 +- io_uring/net.c | 25 +-- io_uring/nop.c | 7 +- io_uring/opdef.c | 8 +- io_uring/register.c | 2 +- io_uring/rsrc.c | 304 +++++++++++++++++++++++++++------ io_uring/rsrc.h | 16 +- io_uring/rw.c | 52 +++--- io_uring/rw.h | 4 +- io_uring/uring_cmd.c | 28 +-- 16 files changed, 433 insertions(+), 193 deletions(-) -- 2.43.5