io_uring: add generic rsrc update with tags
Add IORING_REGISTER_RSRC_UPDATE, which also supports passing in rsrc tags. Implement it for registered files. Signed-off-by: Pavel Begunkov <asml.silence@gmail.com> Link: https://lore.kernel.org/r/d4dc66df204212f64835ffca2c4eb5e8363f2f05.1619356238.git.asml.silence@gmail.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
committed by
Jens Axboe
parent
792e35824b
commit
c3bdad0271
@@ -299,6 +299,7 @@ enum {
|
||||
IORING_REGISTER_RESTRICTIONS = 11,
|
||||
IORING_REGISTER_ENABLE_RINGS = 12,
|
||||
IORING_REGISTER_RSRC = 13,
|
||||
IORING_REGISTER_RSRC_UPDATE = 14,
|
||||
|
||||
/* this goes last */
|
||||
IORING_REGISTER_LAST
|
||||
@@ -311,12 +312,6 @@ struct io_uring_files_update {
|
||||
__aligned_u64 /* __s32 * */ fds;
|
||||
};
|
||||
|
||||
struct io_uring_rsrc_update {
|
||||
__u32 offset;
|
||||
__u32 resv;
|
||||
__aligned_u64 data;
|
||||
};
|
||||
|
||||
enum {
|
||||
IORING_RSRC_FILE = 0,
|
||||
};
|
||||
@@ -328,6 +323,21 @@ struct io_uring_rsrc_register {
|
||||
__aligned_u64 tags;
|
||||
};
|
||||
|
||||
struct io_uring_rsrc_update {
|
||||
__u32 offset;
|
||||
__u32 resv;
|
||||
__aligned_u64 data;
|
||||
};
|
||||
|
||||
struct io_uring_rsrc_update2 {
|
||||
__u32 offset;
|
||||
__u32 resv;
|
||||
__aligned_u64 data;
|
||||
__aligned_u64 tags;
|
||||
__u32 type;
|
||||
__u32 nr;
|
||||
};
|
||||
|
||||
/* Skip updating fd indexes set to this value in the fd table */
|
||||
#define IORING_REGISTER_FILES_SKIP (-2)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user