From 57d341f1056c53225fc1a2cfe6fb0ce6ea6959e8 Mon Sep 17 00:00:00 2001 From: Mike Rapoport Date: Tue, 15 Nov 2016 18:57:23 +0200 Subject: [PATCH] page-xfer: make connect_to_page_server return socket fd It will used by lazy-pages daemon to enable polling for reception of page data from remote dump travis-ci: success for uffd: A new set of improvements Signed-off-by: Mike Rapoport Signed-off-by: Pavel Emelyanov --- criu/cr-dump.c | 4 ++-- criu/page-xfer.c | 2 +- criu/uffd.c | 13 ++++++++++++- 3 files changed, 15 insertions(+), 4 deletions(-) diff --git a/criu/cr-dump.c b/criu/cr-dump.c index 47e8cf95f..37084f0e8 100644 --- a/criu/cr-dump.c +++ b/criu/cr-dump.c @@ -1565,7 +1565,7 @@ int cr_pre_dump_tasks(pid_t pid) if (vdso_init()) goto err; - if (connect_to_page_server()) + if (connect_to_page_server() < 0) goto err; if (setup_alarm_handler()) @@ -1761,7 +1761,7 @@ int cr_dump_tasks(pid_t pid) goto err; } - if (connect_to_page_server()) + if (connect_to_page_server() < 0) goto err; if (setup_alarm_handler()) diff --git a/criu/page-xfer.c b/criu/page-xfer.c index af02a3468..41aea4ee5 100644 --- a/criu/page-xfer.c +++ b/criu/page-xfer.c @@ -906,7 +906,7 @@ out: * on urgent data is the smartest mode ever. */ tcp_cork(page_server_sk, true); - return 0; + return page_server_sk; } int disconnect_from_page_server(void) diff --git a/criu/uffd.c b/criu/uffd.c index afad95208..cec4c214d 100644 --- a/criu/uffd.c +++ b/criu/uffd.c @@ -847,6 +847,17 @@ close_uffd: return -1; } +static int prepare_page_server_socket(void) +{ + int sk; + + sk = connect_to_page_server(); + if (sk < 0) + return -1; + + return 0; +} + int cr_lazy_pages(bool daemon) { struct epoll_event *events; @@ -894,7 +905,7 @@ int cr_lazy_pages(bool daemon) if (prepare_uffds(lazy_sk, epollfd)) return -1; - if (connect_to_page_server()) + if (prepare_page_server_socket()) return -1; ret = handle_requests(epollfd, events);