From 178692e7b2be73fa74278fbf20774e5348080ac2 Mon Sep 17 00:00:00 2001 From: Pavel Tikhomirov Date: Wed, 18 May 2016 13:19:00 +0300 Subject: [PATCH] net/sysctl: silence read error in case of CTL_FLAGS_READ_EIO_SKIP Because stable_secret sysctl c/r produces a lot of spam error messages in tests: https://github.com/xemul/criu/issues/160 But EIO for these sysctl is valid behavior and no error need to be printed. More general solution will also silence error messages for sysctl_read_{u32,s32,u64}, but the flag CTL_FLAGS_READ_EIO_SKIP is now used only for __CTL_STR and only for stable_secret so we can do silence error only in sysctl_read_char. Signed-off-by: Pavel Tikhomirov Acked-by: Andrew Vagin Tested-by: Tycho Andersen Signed-off-by: Pavel Emelyanov --- criu/sysctl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/criu/sysctl.c b/criu/sysctl.c index a38fcb853..77d9bdacf 100644 --- a/criu/sysctl.c +++ b/criu/sysctl.c @@ -132,7 +132,8 @@ sysctl_read_char(int fd, struct sysctl_req *req, char *arg, int nr) pr_debug("%s nr %d\n", req->name, nr); ret = read(fd, arg, nr); if (ret < 0) { - pr_perror("Can't read %s", req->name); + if (errno != EIO || !(req->flags & CTL_FLAGS_READ_EIO_SKIP)) + pr_perror("Can't read %s", req->name); goto err; } ret = 0;