[PATCH v5 0/4] io_uring: extend bvec registration

Joanne Koong
2026-04-02T16:09:39Z

This series refactors and extends the io_uring registered buffers
infrastructure to allow external subsystems to register pre-existing bvec
arrays directly.

The motivation for the patches in this series is to make fuse zero-copy
possible. These patches are split out from a previous larger
fuse-over-io_uring series [1]. The fuse zero-copy work that builds on top of
this is in [2].

Thanks,
Joanne

[1] https://lore.kernel.org/linux-fsdevel/20260116233044.1532965-1-joannelkoong@gmail.com/
[2] https://lore.kernel.org/linux-fsdevel/20260324224532.3733468-9-joannelkoong@gmail.com/

Changelog:
v4: https://lore.kernel.org/io-uring/20260327172631.3380702-1-joannelkoong@gmail.com/
v4 -> v5:
* rebase to origin/for-7.1/io_uring
* drop the io_uring_registered_mem_region_get() patch

v3: https://lore.kernel.org/io-uring/20260324221426.3436334-1-joannelkoong@gmail.com/
v3 -> v4:
* Add comment about io_uring_registered_mem_region_get() locking (Jens)
* Return info in a new struct io_uring_mem_region_info (Jens)

v2: https://lore.kernel.org/io-uring/20260324182157.990864-1-joannelkoong@gmail.com/
v2 -> v3:
* drop patch that makes buffer release callback optional
* add patch for renaming/exporting IO_IMU_DEST / IO_IMU_SOURCE

v1: https://lore.kernel.org/io-uring/20260324001007.1144471-1-joannelkoong@gmail.com/
v1 -> v2:
* update io_kernel_buffer_init() to take bitmasked dir directly so callers can
set both dest and source

Joanne Koong (4):
io_uring/rsrc: rename
io_buffer_register_bvec()/io_buffer_unregister_bvec()
io_uring/rsrc: split io_buffer_register_request() logic
io_uring/rsrc: add io_buffer_register_bvec()
io_uring/rsrc: rename and export IO_IMU_DEST / IO_IMU_SOURCE

Documentation/block/ublk.rst | 14 ++--
drivers/block/ublk_drv.c | 22 +++---
include/linux/io_uring/cmd.h | 38 ++++++++--
include/linux/io_uring_types.h | 5 ++
io_uring/io_uring.c | 2 +-
io_uring/rsrc.c | 127 +++++++++++++++++++++++----------
io_uring/rsrc.h | 5 --
7 files changed, 146 insertions(+), 67 deletions(-)

--
2.52.0