diff --git a/criu/include/util.h b/criu/include/util.h index 63810b493..bf466f5d6 100644 --- a/criu/include/util.h +++ b/criu/include/util.h @@ -323,6 +323,7 @@ struct epoll_rfd { }; extern int epoll_add_rfd(int epfd, struct epoll_rfd *); +extern int epoll_del_rfd(int epfd, struct epoll_rfd *rfd); extern int epoll_run_rfds(int epfd, struct epoll_event *evs, int nr_fds, int tmo); extern int epoll_prepare(int nr_events, struct epoll_event **evs); diff --git a/criu/util.c b/criu/util.c index 8be400e37..b681daf9b 100644 --- a/criu/util.c +++ b/criu/util.c @@ -1228,6 +1228,16 @@ int epoll_add_rfd(int epfd, struct epoll_rfd *rfd) return 0; } +int epoll_del_rfd(int epfd, struct epoll_rfd *rfd) +{ + if (epoll_ctl(epfd, EPOLL_CTL_DEL, rfd->fd, NULL) == -1) { + pr_perror("epoll_ctl failed"); + return -1; + } + + return 0; +} + int epoll_run_rfds(int epollfd, struct epoll_event *evs, int nr_fds, int timeout) { int ret, i, nr_events;