From f68dcdde83640c73375044c5cd84aa047becbfd4 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Sun, 25 Mar 2018 16:27:29 +0300 Subject: [PATCH] lazy-pages: make complete_forks more robust The complete_forks function presumes that it always has a work to do because we assume that fork event is the only case when we drop out of epoll_run_rfds with positive return value. Teach complete_forks to bail out when there is no pending forks to process to allow exiting epoll_run_rfds for different reasons. Signed-off-by: Mike Rapoport Signed-off-by: Andrei Vagin --- criu/uffd.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/criu/uffd.c b/criu/uffd.c index 14a7ab41b..45c1df51d 100644 --- a/criu/uffd.c +++ b/criu/uffd.c @@ -965,6 +965,9 @@ static int complete_forks(int epollfd, struct epoll_event **events, int *nr_fds) { struct lazy_pages_info *lpi, *n; + if (list_empty(&pending_lpis)) + return 0; + list_for_each_entry(lpi, &pending_lpis, l) (*nr_fds)++;