From fe0b08ef4f217eb18dbb484f29bc195107a50cb3 Mon Sep 17 00:00:00 2001 From: Pavel Emelyanov Date: Fri, 30 Jun 2017 14:00:26 +0300 Subject: [PATCH] files: Move epoll into files image Reviewed-by: Kirill Tkhai Signed-off-by: Pavel Emelyanov Signed-off-by: Andrei Vagin --- criu/cr-restore.c | 4 ++-- criu/eventpoll.c | 8 ++++++-- criu/files.c | 3 +++ criu/include/image-desc.h | 2 +- images/fdinfo.proto | 2 ++ 5 files changed, 14 insertions(+), 5 deletions(-) diff --git a/criu/cr-restore.c b/criu/cr-restore.c index 64a5f6b6e..bcecb843e 100644 --- a/criu/cr-restore.c +++ b/criu/cr-restore.c @@ -258,8 +258,6 @@ static struct collect_image_info *cinfos[] = { &pipe_cinfo, &fifo_cinfo, &unix_sk_cinfo, - &epoll_cinfo, - &epoll_tfd_cinfo, &signalfd_cinfo, &inotify_cinfo, &inotify_mark_cinfo, @@ -279,6 +277,8 @@ static struct collect_image_info *cinfos_files[] = { &packet_sk_cinfo, &netlink_sk_cinfo, &eventfd_cinfo, + &epoll_cinfo, + &epoll_tfd_cinfo, }; /* These images are requered to restore namespaces */ diff --git a/criu/eventpoll.c b/criu/eventpoll.c index b58e068c9..f0265ced2 100644 --- a/criu/eventpoll.c +++ b/criu/eventpoll.c @@ -53,6 +53,7 @@ static void pr_info_eventpoll(char *action, EventpollFileEntry *e) static int dump_one_eventpoll(int lfd, u32 id, const struct fd_parms *p) { + FileEntry fe = FILE_ENTRY__INIT; EventpollFileEntry e = EVENTPOLL_FILE_ENTRY__INIT; int i, ret = -1; @@ -63,9 +64,12 @@ static int dump_one_eventpoll(int lfd, u32 id, const struct fd_parms *p) if (parse_fdinfo(lfd, FD_TYPES__EVENTPOLL, &e)) goto out; + fe.type = FD_TYPES__EVENTPOLL; + fe.id = e.id; + fe.epfd = &e; + pr_info_eventpoll("Dumping ", &e); - ret = pb_write_one(img_from_set(glob_imgset, CR_FD_EVENTPOLL_FILE), - &e, PB_EVENTPOLL_FILE); + ret = pb_write_one(img_from_set(glob_imgset, CR_FD_FILES), &fe, PB_FILE); out: for (i = 0; i < e.n_tfd; i++) { if (!ret) diff --git a/criu/files.c b/criu/files.c index ecf1d3c89..c8646a351 100644 --- a/criu/files.c +++ b/criu/files.c @@ -1704,6 +1704,9 @@ static int collect_one_file(void *o, ProtobufCMessage *base, struct cr_img *i) case FD_TYPES__EVENTFD: ret = collect_one_file_entry(fe, fe->efd->id, &fe->efd->base, &eventfd_cinfo); break; + case FD_TYPES__EVENTPOLL: + ret = collect_one_file_entry(fe, fe->epfd->id, &fe->epfd->base, &epoll_cinfo); + break; } return ret; diff --git a/criu/include/image-desc.h b/criu/include/image-desc.h index bc00e6587..d5dc8bbb3 100644 --- a/criu/include/image-desc.h +++ b/criu/include/image-desc.h @@ -66,7 +66,6 @@ enum { CR_FD_TTY_INFO, CR_FD_TTY_DATA, CR_FD_REMAP_FPATH, - CR_FD_EVENTPOLL_FILE, CR_FD_SIGNALFD, CR_FD_INOTIFY_FILE, CR_FD_FANOTIFY_FILE, @@ -106,6 +105,7 @@ enum { CR_FD_PACKETSK, CR_FD_NETLINK_SK, CR_FD_EVENTFD_FILE, + CR_FD_EVENTPOLL_FILE, CR_FD_AUTOFS, diff --git a/images/fdinfo.proto b/images/fdinfo.proto index e3ed23648..f2fb2f876 100644 --- a/images/fdinfo.proto +++ b/images/fdinfo.proto @@ -6,6 +6,7 @@ import "ns.proto"; import "packet-sock.proto"; import "sk-netlink.proto"; import "eventfd.proto"; +import "eventpoll.proto"; enum fd_types { UND = 0; @@ -44,4 +45,5 @@ message file_entry { optional packet_sock_entry psk = 6; optional netlink_sk_entry nlsk = 7; optional eventfd_file_entry efd = 8; + optional eventpoll_file_entry epfd = 9; }