From: Jens Axboe Date: Thu, 23 Apr 2026 11:10:15 +0000 (-0600) Subject: io_uring/epoll: switch to using do_epoll_ctl_file() interface X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=071858de47a29ae8b0bf2239a195df876806e28e;p=thirdparty%2Fkernel%2Flinux.git io_uring/epoll: switch to using do_epoll_ctl_file() interface No functional changes in this patch. Signed-off-by: Jens Axboe --- 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;