]> git.itanic.dy.fi Git - linux-stable/commitdiff
io_uring/unix: drop usage of io_uring socket
authorJens Axboe <axboe@kernel.dk>
Tue, 19 Dec 2023 19:30:43 +0000 (12:30 -0700)
committerJens Axboe <axboe@kernel.dk>
Tue, 19 Dec 2023 19:33:50 +0000 (12:33 -0700)
Since we no longer allow sending io_uring fds over SCM_RIGHTS, move to
using io_is_uring_fops() to detect whether this is a io_uring fd or not.
With that done, kill off io_uring_get_socket() as nobody calls it
anymore.

This is in preparation to yanking out the rest of the core related to
unix gc with io_uring.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
include/linux/io_uring.h
io_uring/io_uring.c
io_uring/io_uring.h
net/core/scm.c
net/unix/scm.c

index d8fc93492dc50bc3fb1a07993c055c5e0ddfc6b8..68ed6697fece32b7ef0cbc9a88138011bf4fd478 100644 (file)
@@ -7,12 +7,12 @@
 #include <uapi/linux/io_uring.h>
 
 #if defined(CONFIG_IO_URING)
-struct sock *io_uring_get_socket(struct file *file);
 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)
 {
@@ -32,10 +32,6 @@ static inline void io_uring_free(struct task_struct *tsk)
                __io_uring_free(tsk);
 }
 #else
-static inline struct sock *io_uring_get_socket(struct file *file)
-{
-       return NULL;
-}
 static inline void io_uring_task_cancel(void)
 {
 }
@@ -54,6 +50,10 @@ static inline int io_uring_cmd_sock(struct io_uring_cmd *cmd,
 {
        return -EOPNOTSUPP;
 }
+static inline bool io_is_uring_fops(struct file *file)
+{
+       return false;
+}
 #endif
 
 #endif
index 2b24ce692b0b47d0e8bc5b492bd6b1f31d607a05..a9acccd45880d62b9c998361f8a7c3f914f1f6f8 100644 (file)
@@ -171,19 +171,6 @@ static struct ctl_table kernel_io_uring_disabled_table[] = {
 };
 #endif
 
-struct sock *io_uring_get_socket(struct file *file)
-{
-#if defined(CONFIG_UNIX)
-       if (io_is_uring_fops(file)) {
-               struct io_ring_ctx *ctx = file->private_data;
-
-               return ctx->ring_sock->sk;
-       }
-#endif
-       return NULL;
-}
-EXPORT_SYMBOL(io_uring_get_socket);
-
 static inline void io_submit_flush_completions(struct io_ring_ctx *ctx)
 {
        if (!wq_list_empty(&ctx->submit_state.compl_reqs) ||
index 1112c198e516bb7b83dcabf19d09dd339ab6f8a2..04e33f25919ca78332fc3429b8c98d427b768688 100644 (file)
@@ -44,7 +44,6 @@ struct file *io_file_get_fixed(struct io_kiocb *req, int fd,
                               unsigned issue_flags);
 
 void __io_req_task_work_add(struct io_kiocb *req, unsigned flags);
-bool io_is_uring_fops(struct file *file);
 bool io_alloc_async_data(struct io_kiocb *req);
 void io_req_task_queue(struct io_kiocb *req);
 void io_queue_iowq(struct io_kiocb *req, struct io_tw_state *ts_dont_use);
index db3f7cd519c2da12c9986c11836b384dafc11568..d0e0852a24d5f05d41c2ad0724a5178a4b8489e1 100644 (file)
@@ -105,7 +105,7 @@ static int scm_fp_copy(struct cmsghdr *cmsg, struct scm_fp_list **fplp)
                if (fd < 0 || !(file = fget_raw(fd)))
                        return -EBADF;
                /* don't allow io_uring files */
-               if (io_uring_get_socket(file)) {
+               if (io_is_uring_fops(file)) {
                        fput(file);
                        return -EINVAL;
                }
index 6ff628f2349f571fa8f1e86454a0339a78f7b0f0..822ce0d0d79158692c12c20eae8e1c354e1960f3 100644 (file)
@@ -35,10 +35,8 @@ struct sock *unix_get_socket(struct file *filp)
                /* PF_UNIX ? */
                if (s && ops && ops->family == PF_UNIX)
                        u_sock = s;
-       } else {
-               /* Could be an io_uring instance */
-               u_sock = io_uring_get_socket(filp);
        }
+
        return u_sock;
 }
 EXPORT_SYMBOL(unix_get_socket);