diff options
author | Breno Leitao <leitao@debian.org> | 2023-06-27 06:44:24 -0700 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2023-08-09 10:46:15 -0600 |
commit | 8e9fad0e70b7b62848e0aeb1a873903b9ce4d7c4 (patch) | |
tree | a8409a91d6a22c12bd3974b9e21e223411e78b09 /net/socket.c | |
parent | f77569d22ad91dc25de294864fa5b24d37ddc149 (diff) | |
download | lwn-8e9fad0e70b7b62848e0aeb1a873903b9ce4d7c4.tar.gz lwn-8e9fad0e70b7b62848e0aeb1a873903b9ce4d7c4.zip |
io_uring: Add io_uring command support for sockets
Enable io_uring commands on network sockets. Create two new
SOCKET_URING_OP commands that will operate on sockets.
In order to call ioctl on sockets, use the file_operations->io_uring_cmd
callbacks, and map it to a uring socket function, which handles the
SOCKET_URING_OP accordingly, and calls socket ioctls.
This patches was tested by creating a new test case in liburing.
Link: https://github.com/leitao/liburing/tree/io_uring_cmd
Signed-off-by: Breno Leitao <leitao@debian.org>
Acked-by: Jakub Kicinski <kuba@kernel.org>
Link: https://lore.kernel.org/r/20230627134424.2784797-1-leitao@debian.org
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'net/socket.c')
-rw-r--r-- | net/socket.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/net/socket.c b/net/socket.c index 2b0e54b2405c..1dc23f5298ba 100644 --- a/net/socket.c +++ b/net/socket.c @@ -88,6 +88,7 @@ #include <linux/xattr.h> #include <linux/nospec.h> #include <linux/indirect_call_wrapper.h> +#include <linux/io_uring.h> #include <linux/uaccess.h> #include <asm/unistd.h> @@ -159,6 +160,7 @@ static const struct file_operations socket_file_ops = { #ifdef CONFIG_COMPAT .compat_ioctl = compat_sock_ioctl, #endif + .uring_cmd = io_uring_cmd_sock, .mmap = sock_mmap, .release = sock_close, .fasync = sock_fasync, |