Commit 75fa3c6e authored by Kir Kolyshkin's avatar Kir Kolyshkin Committed by Pavel Emelyanov

tcp_read_sysctl_limits: hide a useless error, leave a warning

When running tests, there are a lot of errors like this:

 (00.000053) Error (sysctl.c:367): Can't open sysctl net/ipv4/tcp_rmem: No such file or directory

As Andrew explained, tests are running in a netns that lacks
this sysctl. Use CTL_FLAGS_OPTIONAL flag to hide the error message.

Since with this flag sysctl_op() will most probably return 0,
add an additional check for vect[0] == 0 to detect that the file
was not read and show an appropriate warning, i.e.
"TCP mem sysctls are not available. Using defaults."
Signed-off-by: 's avatarKir Kolyshkin <kir@openvz.org>
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent b1599c3d
...@@ -214,7 +214,7 @@ static int tcp_read_sysctl_limits(void) ...@@ -214,7 +214,7 @@ static int tcp_read_sysctl_limits(void)
int ret; int ret;
struct sysctl_req req[] = { struct sysctl_req req[] = {
{ "net/ipv4/tcp_rmem", &vect, CTL_U32A(ARRAY_SIZE(vect)) }, { "net/ipv4/tcp_rmem", &vect, CTL_U32A(ARRAY_SIZE(vect)), CTL_FLAGS_OPTIONAL },
}; };
/* /*
...@@ -222,7 +222,7 @@ static int tcp_read_sysctl_limits(void) ...@@ -222,7 +222,7 @@ static int tcp_read_sysctl_limits(void)
* availabe for send/read queues on restore. * availabe for send/read queues on restore.
*/ */
ret = sysctl_op(req, ARRAY_SIZE(req), CTL_READ, 0); ret = sysctl_op(req, ARRAY_SIZE(req), CTL_READ, 0);
if (ret) { if (ret || vect[0] == 0) {
pr_warn("TCP mem sysctls are not available. Using defaults.\n"); pr_warn("TCP mem sysctls are not available. Using defaults.\n");
goto out; goto out;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment