io_uring/rsrc: allow cloning with node replacements
Currently cloning a buffer table will fail if the destination already has a table. But it should be possible to use it to replace existing elements. Add a IORING_REGISTER_DST_REPLACE cloning flag, which if set, will allow the destination to already having a buffer table. If that is the case, then entries designated by offset + nr buffers will be replaced if they already exist. Note that it's allowed to use IORING_REGISTER_DST_REPLACE and not have an existing table, in which case it'll work just like not having the flag set and an empty table - it'll just assign the newly created table for that case. Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
@@ -713,7 +713,8 @@ struct io_uring_clock_register {
|
||||
};
|
||||
|
||||
enum {
|
||||
IORING_REGISTER_SRC_REGISTERED = 1,
|
||||
IORING_REGISTER_SRC_REGISTERED = (1U << 0),
|
||||
IORING_REGISTER_DST_REPLACE = (1U << 1),
|
||||
};
|
||||
|
||||
struct io_uring_clone_buffers {
|
||||
|
||||
Reference in New Issue
Block a user