From 4be6350cfba8f0da20b8aad41af2dc4e3a192170 Mon Sep 17 00:00:00 2001 From: Andrey Vagin Date: Tue, 2 Sep 2014 00:25:00 +0400 Subject: [PATCH] fsnotify: don't dump fd, it is has queued evetns Events are not dumped/restored. An idea of ignoring them isn't good. Signed-off-by: Andrey Vagin Acked-by: Cyrill Gorcunov Signed-off-by: Pavel Emelyanov --- fsnotify.c | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/fsnotify.c b/fsnotify.c index 95995987a..33563eba8 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;