io_uring: change registration/upd/rsrc tagging ABI
authorPavel Begunkov <asml.silence@gmail.com>
Thu, 10 Jun 2021 15:37:37 +0000 (16:37 +0100)
committerJens Axboe <axboe@kernel.dk>
Thu, 10 Jun 2021 22:33:51 +0000 (16:33 -0600)
commit992da01aa932b432ef8dc3885fa76415b5dbe43f
tree3de728aba883d8c2a3b00f0eba1d80021bc7b4f0
parent216e5835966a709bb87a4d94a7343dd90ab0bd64
io_uring: change registration/upd/rsrc tagging ABI

There are ABI moments about recently added rsrc registration/update and
tagging that might become a nuisance in the future. First,
IORING_REGISTER_RSRC[_UPD] hide different types of resources under it,
so breaks fine control over them by restrictions. It works for now, but
once those are wanted under restrictions it would require a rework.

It was also inconvenient trying to fit a new resource not supporting
all the features (e.g. dynamic update) into the interface, so better
to return to IORING_REGISTER_* top level dispatching.

Second, register/update were considered to accept a type of resource,
however that's not a good idea because there might be several ways of
registration of a single resource type, e.g. we may want to add
non-contig buffers or anything more exquisite as dma mapped memory.
So, remove IORING_RSRC_[FILE,BUFFER] out of the ABI, and place them
internally for now to limit changes.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/9b554897a7c17ad6e3becc48dfed2f7af9f423d5.1623339162.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c
include/uapi/linux/io_uring.h