summaryrefslogtreecommitdiff
path: root/net/socket.c
diff options
context:
space:
mode:
authorBreno Leitao <leitao@debian.org>2023-06-27 06:44:24 -0700
committerJens Axboe <axboe@kernel.dk>2023-08-09 10:46:15 -0600
commit8e9fad0e70b7b62848e0aeb1a873903b9ce4d7c4 (patch)
treea8409a91d6a22c12bd3974b9e21e223411e78b09 /net/socket.c
parentf77569d22ad91dc25de294864fa5b24d37ddc149 (diff)
downloadlwn-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.c2
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,