[CRIU] [PATCH 2/2] fsnotify: don't dump fd, it is has queued evetns

Andrey Vagin avagin at openvz.org
Mon Sep 1 13:25:14 PDT 2014


Events are not dumped/restored. An idea of ignoring them isn't good.

Signed-off-by: Andrey Vagin <avagin at openvz.org>
---
 fsnotify.c | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/fsnotify.c b/fsnotify.c
index 09b793d..ec12413 100644
--- a/fsnotify.c
+++ b/fsnotify.c
@@ -231,7 +231,15 @@ static int dump_one_inotify(int lfd, u32 id, const struct fd_parms *p)
 	struct watch_list wd_list = {.list = LIST_HEAD_INIT(wd_list.list), .n = 0};
 	InotifyFileEntry ie = INOTIFY_FILE_ENTRY__INIT;
 	union fdinfo_entries *we, *tmp;
-	int exit_code = -1, i;
+	int exit_code = -1, i, ret;
+
+	ret = fd_has_data(lfd);
+	if (ret < 0)
+		return -1;
+	else if (ret > 0) {
+		pr_err("The %d inotify has queued events\n", id);
+		return -1;
+	}
 
 	ie.id = id;
 	ie.flags = p->flags;
@@ -337,6 +345,15 @@ static int dump_one_fanotify(int lfd, u32 id, const struct fd_parms *p)
 	union fdinfo_entries *we, *tmp;
 	int ret = -1, i;
 
+	ret = fd_has_data(lfd);
+	if (ret < 0)
+		return -1;
+	else if (ret > 0) {
+		pr_err("The %d inotify has queued events\n", id);
+		return -1;
+	}
+	ret = -1;
+
 	fe.id = id;
 	fe.flags = p->flags;
 	fe.fown = (FownEntry *)&p->fown;
-- 
1.9.3



More information about the CRIU mailing list