io_uring: separate header for exported net bits
authorPavel Begunkov <asml.silence@gmail.com>
Tue, 9 Apr 2024 21:05:53 +0000 (14:05 -0700)
committerJens Axboe <axboe@kernel.dk>
Mon, 15 Apr 2024 14:10:26 +0000 (08:10 -0600)
We're exporting some io_uring bits to networking, e.g. for implementing
a net callback for io_uring cmds, but we don't want to expose more than
needed. Add a separate header for networking.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: David Wei <dw@davidwei.uk>
Link: https://lore.kernel.org/r/20240409210554.1878789-1-dw@davidwei.uk
Signed-off-by: Jens Axboe <axboe@kernel.dk>
include/linux/io_uring.h
include/linux/io_uring/net.h [new file with mode: 0644]
io_uring/uring_cmd.c
net/socket.c

index 68ed6697fece32b7ef0cbc9a88138011bf4fd478..e123d5e17b526148054872ee513f665adea80eb6 100644 (file)
@@ -11,7 +11,6 @@ void __io_uring_cancel(bool cancel_all);
 void __io_uring_free(struct task_struct *tsk);
 void io_uring_unreg_ringfd(void);
 const char *io_uring_get_opcode(u8 opcode);
-int io_uring_cmd_sock(struct io_uring_cmd *cmd, unsigned int issue_flags);
 bool io_is_uring_fops(struct file *file);
 
 static inline void io_uring_files_cancel(void)
@@ -45,11 +44,6 @@ static inline const char *io_uring_get_opcode(u8 opcode)
 {
        return "";
 }
-static inline int io_uring_cmd_sock(struct io_uring_cmd *cmd,
-                                   unsigned int issue_flags)
-{
-       return -EOPNOTSUPP;
-}
 static inline bool io_is_uring_fops(struct file *file)
 {
        return false;
diff --git a/include/linux/io_uring/net.h b/include/linux/io_uring/net.h
new file mode 100644 (file)
index 0000000..b58f39f
--- /dev/null
@@ -0,0 +1,18 @@
+/* SPDX-License-Identifier: GPL-2.0-or-later */
+#ifndef _LINUX_IO_URING_NET_H
+#define _LINUX_IO_URING_NET_H
+
+struct io_uring_cmd;
+
+#if defined(CONFIG_IO_URING)
+int io_uring_cmd_sock(struct io_uring_cmd *cmd, unsigned int issue_flags);
+
+#else
+static inline int io_uring_cmd_sock(struct io_uring_cmd *cmd,
+                                   unsigned int issue_flags)
+{
+       return -EOPNOTSUPP;
+}
+#endif
+
+#endif
index 334d31dd6628e8c3c036d99e40dd6a117cbda9ee..21ac5fb2d5f087e1174d5c94815d580972db6e3f 100644 (file)
@@ -3,6 +3,7 @@
 #include <linux/errno.h>
 #include <linux/file.h>
 #include <linux/io_uring/cmd.h>
+#include <linux/io_uring/net.h>
 #include <linux/security.h>
 #include <linux/nospec.h>
 #include <net/sock.h>
index e5f3af49a8b6215189066cbc1481406661b594e5..01a71ae10c35dce86e97794b3f7699b1de9954dd 100644 (file)
@@ -88,7 +88,7 @@
 #include <linux/xattr.h>
 #include <linux/nospec.h>
 #include <linux/indirect_call_wrapper.h>
-#include <linux/io_uring.h>
+#include <linux/io_uring/net.h>
 
 #include <linux/uaccess.h>
 #include <asm/unistd.h>