From: ebiederm-aS9lmoZGLiVWk0Htik3J/w@public•gmane.org (Eric W. Biederman)
To: David Miller <davem-fT/PcQaiUtIeIZ0/mPfg9Q@public•gmane.org>
Cc: netdev-u79uwXL29TY76Z2rM5mHXA@public•gmane.org,
Linux Containers
<containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public•gmane.org>,
cgroups-u79uwXL29TY76Z2rM5mHXA@public•gmane.org
Subject: [PATCH 5/6] ipv4: Use math to point per net sysctls into the appropriate struct net.
Date: Sat, 19 Oct 2013 16:27:03 -0700 [thread overview]
Message-ID: <87vc0sg7ug.fsf@xmission.com> (raw)
In-Reply-To: <87r4bghml4.fsf-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org> (Eric W. Biederman's message of "Sat, 19 Oct 2013 16:23:19 -0700")
Simplify maintenance of ipv4_net_table by using math to point the per
net sysctls into the appropriate struct net, instead of manually
reassinging all of the variables into hard coded table slots.
Signed-off-by: "Eric W. Biederman" <ebiederm-aS9lmoZGLiVWk0Htik3J/w@public•gmane.org>
---
net/ipv4/sysctl_net_ipv4.c | 23 +++++------------------
1 files changed, 5 insertions(+), 18 deletions(-)
diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c
index 635dd4d5edcf..5a17eb605f77 100644
--- a/net/ipv4/sysctl_net_ipv4.c
+++ b/net/ipv4/sysctl_net_ipv4.c
@@ -833,28 +833,15 @@ static __net_init int ipv4_sysctl_init_net(struct net *net)
table = ipv4_net_table;
if (!net_eq(net, &init_net)) {
+ int i;
+
table = kmemdup(table, sizeof(ipv4_net_table), GFP_KERNEL);
if (table == NULL)
goto err_alloc;
- table[0].data =
- &net->ipv4.sysctl_icmp_echo_ignore_all;
- table[1].data =
- &net->ipv4.sysctl_icmp_echo_ignore_broadcasts;
- table[2].data =
- &net->ipv4.sysctl_icmp_ignore_bogus_error_responses;
- table[3].data =
- &net->ipv4.sysctl_icmp_errors_use_inbound_ifaddr;
- table[4].data =
- &net->ipv4.sysctl_icmp_ratelimit;
- table[5].data =
- &net->ipv4.sysctl_icmp_ratemask;
- table[6].data =
- &net->ipv4.sysctl_ping_group_range;
- table[7].data =
- &net->ipv4.sysctl_tcp_ecn;
- table[8].data =
- &net->ipv4.sysctl_local_ports.range;
+ /* Update the variables to point into the current struct net */
+ for (i = 0; i < ARRAY_SIZE(ipv4_net_table) - 1; i++)
+ table[i].data += (void *)net - (void *)&init_net;
/* Don't export sysctls to unprivileged users */
if (net->user_ns != &init_user_ns)
--
1.7.5.4
next prev parent reply other threads:[~2013-10-19 23:27 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-19 23:23 [PATCH 0/6] ipv4: tcp_memcontrol and userns sysctls Eric W. Biederman
[not found] ` <87r4bghml4.fsf-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org>
2013-10-19 23:24 ` [PATCH 1/6] tcp_memcontrol: Remove tcp_max_memory Eric W. Biederman
2013-10-19 23:24 ` [PATCH 2/6] tcp_memcontrol: Remove setting cgroup settings via sysctl Eric W. Biederman
2013-10-19 23:25 ` [PATCH 3/6] tcp_memcontrol: Remove the per netns control Eric W. Biederman
2013-10-19 23:26 ` [PATCH 4/6] tcp_memcontrol: Kill struct tcp_memcontrol Eric W. Biederman
2013-10-19 23:27 ` Eric W. Biederman [this message]
2013-10-19 23:27 ` [PATCH 6/6] ipv4: Allow unprivileged users to use per net sysctls Eric W. Biederman
2013-10-21 22:44 ` [PATCH 0/6] ipv4: tcp_memcontrol and userns sysctls David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87vc0sg7ug.fsf@xmission.com \
--to=ebiederm-as9lmozglivwk0htik3j/w@public$(echo .)gmane.org \
--cc=cgroups-u79uwXL29TY76Z2rM5mHXA@public$(echo .)gmane.org \
--cc=containers-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public$(echo .)gmane.org \
--cc=davem-fT/PcQaiUtIeIZ0/mPfg9Q@public$(echo .)gmane.org \
--cc=netdev-u79uwXL29TY76Z2rM5mHXA@public$(echo .)gmane.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox