io_uring/rsrc: unify file and buffer resource tables
authorJens Axboe <axboe@kernel.dk>
Sat, 26 Oct 2024 20:50:13 +0000 (14:50 -0600)
committerJens Axboe <axboe@kernel.dk>
Sat, 2 Nov 2024 21:45:23 +0000 (15:45 -0600)
commit3597f2786b687a7f26361ce00a805ea0af41b65f
tree7b15bfaff8816407ffd8936e12ef1eb0fcc458bd
parentf38f2847646f8be29a8fcb722e8b1dc8c8cb3924
io_uring/rsrc: unify file and buffer resource tables

For files, there's nr_user_files/file_table/file_data, and buffers have
nr_user_bufs/user_bufs/buf_data. There's no reason why file_table and
file_data can't be the same thing, and ditto for the buffer side. That
gets rid of more io_ring_ctx state that's in two spots rather than just
being in one spot, as it should be. Put all the registered file data in
one locations, and ditto on the buffer front.

This also avoids having both io_rsrc_data->nodes being an allocated
array, and ->user_bufs[] or ->file_table.nodes. There's no reason to
have this information duplicated. Keep it in one spot, io_rsrc_data,
along with how many resources are available.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
15 files changed:
include/linux/io_uring_types.h
io_uring/cancel.c
io_uring/fdinfo.c
io_uring/filetable.c
io_uring/filetable.h
io_uring/io_uring.c
io_uring/msg_ring.c
io_uring/net.c
io_uring/nop.c
io_uring/register.c
io_uring/rsrc.c
io_uring/rsrc.h
io_uring/rw.c
io_uring/splice.c
io_uring/uring_cmd.c