Hi, Here's v3 of this patchset, it's looking pretty clean by now. For the v2 posting, please look here: https://lore.kernel.org/io-uring/20241028150437.387667-1-axboe@xxxxxxxxx/T/#ma92ca3d24796b56414c68e49213bf6455002eb06 This series can also be found here: https://git.kernel.dk/cgit/linux/log/?h=io_uring-rsrc with previous versions in .1, and .2 postfixes of that branch. Changes since v2: - Don't pass in pointer to index to io_rsrc_node_lookup() - Add io_reset_rsrc_node() helper, which cleans up some of the "lookup old node, if it exists, and put it" logic in various spots. - Get rid of 'rsrc' member in buf/file union, clear the right pointer when the specific resource is put - Drop unused IORING_RSRC_INVALID type - Drop unused 'index' argument for io_rsrc_node_alloc() - Use rsrc_empty_node consistently - Rebase on current for-6.13 + 6.12 fixes include/linux/io_uring_types.h | 25 +- include/uapi/linux/io_uring.h | 3 + io_uring/cancel.c | 8 +- io_uring/fdinfo.c | 14 +- io_uring/filetable.c | 66 ++-- io_uring/filetable.h | 31 +- io_uring/io_uring.c | 51 +-- io_uring/msg_ring.c | 31 +- io_uring/net.c | 15 +- io_uring/nop.c | 47 ++- io_uring/notif.c | 3 +- io_uring/opdef.c | 2 + io_uring/register.c | 3 +- io_uring/rsrc.c | 578 +++++++++++---------------------- io_uring/rsrc.h | 98 +++--- io_uring/rw.c | 12 +- io_uring/splice.c | 42 ++- io_uring/splice.h | 1 + io_uring/uring_cmd.c | 19 +- 19 files changed, 414 insertions(+), 635 deletions(-) -- Jens Axboe