aboutsummaryrefslogtreecommitdiffstats
path: root/io_uring
diff options
authorJens Axboe <axboe@kernel.dk>2026-04-23 05:10:15 -0600
committerJens Axboe <axboe@kernel.dk>2026-05-15 09:57:37 -0600
commit071858de47a29ae8b0bf2239a195df876806e28e (patch)
tree6fee29e0946bc35060327f43ac7b31e7c542a497 /io_uring
parentfe87ab1e95120bbd13c8b97367de45367bf2ab5b (diff)
downloadath-071858de47a29ae8b0bf2239a195df876806e28e.tar.gz
io_uring/epoll: switch to using do_epoll_ctl_file() interface
No functional changes in this patch. Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'io_uring')
-rw-r--r--io_uring/epoll.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/io_uring/epoll.c b/io_uring/epoll.c
index 8d4610246ba0a..b9db8bde27ec8 100644
--- a/io_uring/epoll.c
+++ b/io_uring/epoll.c
@@ -51,10 +51,21 @@ int io_epoll_ctl_prep(struct io_kiocb *req, const struct io_uring_sqe *sqe)
int io_epoll_ctl(struct io_kiocb *req, unsigned int issue_flags)
{
struct io_epoll *ie = io_kiocb_to_cmd(req, struct io_epoll);
- int ret;
bool force_nonblock = issue_flags & IO_URING_F_NONBLOCK;
+ struct epoll_key key;
+ int ret;
+
+ CLASS(fd, f)(ie->epfd);
+ if (fd_empty(f))
+ return -EBADF;
+
+ CLASS(fd, tf)(ie->fd);
+ if (fd_empty(tf))
+ return -EBADF;
- ret = do_epoll_ctl(ie->epfd, ie->op, ie->fd, &ie->event, force_nonblock);
+ key.file = fd_file(tf);
+ key.fd = ie->fd;
+ ret = do_epoll_ctl_file(fd_file(f), ie->op, &key, &ie->event, force_nonblock);
if (force_nonblock && ret == -EAGAIN)
return -EAGAIN;