All of lore.kernel.org
 help / color / mirror / Atom feed
From: Shen Feng <shen@cn.fujitsu.com>
To: davem@davemloft.net
Cc: Andrew Morton <akpm@linux-foundation.org>,
	netdev@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: [PATCH] IPv4/IPv6: update sysctl files
Date: Wed, 08 Apr 2009 10:17:00 +0800	[thread overview]
Message-ID: <49DC091C.6070708@cn.fujitsu.com> (raw)


Now the following sysctl files in /proc/sys/net/ipv4 are used by
both IPv4 and IPv6.
tcp_mem  tcp_rmem  tcp_wmem
udp_mem  udp_rmem_min  udp_wmem_min
Putting them in /proc/sys/net/ipv4 is not a good choice.

So move tcp_mem  tcp_rmem  tcp_wmem to /proc/sys/net/tcp and
move udp_mem  udp_rmem_min  udp_wmem_min to /poc/sys/net/udp.

Signed-off-by: Shen Feng <shen@cn.fujitsu.com>
---
 net/ipv4/sysctl_net_ipv4.c |   95 ++++++++++++++++++++++++++++++-------------
 1 files changed, 66 insertions(+), 29 deletions(-)

diff --git a/net/ipv4/sysctl_net_ipv4.c b/net/ipv4/sysctl_net_ipv4.c
index 4710d21..a520011 100644
--- a/net/ipv4/sysctl_net_ipv4.c
+++ b/net/ipv4/sysctl_net_ipv4.c
@@ -503,30 +503,6 @@ static struct ctl_table ipv4_table[] = {
 		.proc_handler	= proc_dointvec
 	},
 	{
-		.ctl_name	= NET_TCP_MEM,
-		.procname	= "tcp_mem",
-		.data		= &sysctl_tcp_mem,
-		.maxlen		= sizeof(sysctl_tcp_mem),
-		.mode		= 0644,
-		.proc_handler	= proc_dointvec
-	},
-	{
-		.ctl_name	= NET_TCP_WMEM,
-		.procname	= "tcp_wmem",
-		.data		= &sysctl_tcp_wmem,
-		.maxlen		= sizeof(sysctl_tcp_wmem),
-		.mode		= 0644,
-		.proc_handler	= proc_dointvec
-	},
-	{
-		.ctl_name	= NET_TCP_RMEM,
-		.procname	= "tcp_rmem",
-		.data		= &sysctl_tcp_rmem,
-		.maxlen		= sizeof(sysctl_tcp_rmem),
-		.mode		= 0644,
-		.proc_handler	= proc_dointvec
-	},
-	{
 		.ctl_name	= NET_TCP_APP_WIN,
 		.procname	= "tcp_app_win",
 		.data		= &sysctl_tcp_app_win,
@@ -712,6 +688,38 @@ static struct ctl_table ipv4_table[] = {
 		.mode		= 0644,
 		.proc_handler	= proc_dointvec,
 	},
+	{ .ctl_name = 0 }
+};
+
+static struct ctl_table proc_tcp_table[] = {
+	{
+		.ctl_name	= NET_TCP_MEM,
+		.procname	= "tcp_mem",
+		.data		= &sysctl_tcp_mem,
+		.maxlen		= sizeof(sysctl_tcp_mem),
+		.mode		= 0644,
+		.proc_handler	= proc_dointvec
+	},
+	{
+		.ctl_name	= NET_TCP_WMEM,
+		.procname	= "tcp_wmem",
+		.data		= &sysctl_tcp_wmem,
+		.maxlen		= sizeof(sysctl_tcp_wmem),
+		.mode		= 0644,
+		.proc_handler	= proc_dointvec
+	},
+	{
+		.ctl_name	= NET_TCP_RMEM,
+		.procname	= "tcp_rmem",
+		.data		= &sysctl_tcp_rmem,
+		.maxlen		= sizeof(sysctl_tcp_rmem),
+		.mode		= 0644,
+		.proc_handler	= proc_dointvec
+	},
+	{},
+};
+
+static struct ctl_table proc_udp_table[] = {
 	{
 		.ctl_name	= CTL_UNNUMBERED,
 		.procname	= "udp_mem",
@@ -742,7 +750,7 @@ static struct ctl_table ipv4_table[] = {
 		.strategy	= sysctl_intvec,
 		.extra1		= &zero
 	},
-	{ .ctl_name = 0 }
+	{},
 };
 
 static struct ctl_table ipv4_net_table[] = {
@@ -813,6 +821,20 @@ struct ctl_path net_ipv4_ctl_path[] = {
 };
 EXPORT_SYMBOL_GPL(net_ipv4_ctl_path);
 
+struct ctl_path net_tcp_ctl_path[] = {
+	{ .procname = "net", .ctl_name = CTL_NET, },
+	{ .procname = "tcp", .ctl_name = CTL_UNNUMBERED, },
+	{},
+};
+EXPORT_SYMBOL_GPL(net_tcp_ctl_path);
+
+struct ctl_path net_udp_ctl_path[] = {
+	{ .procname = "net", .ctl_name = CTL_NET, },
+	{ .procname = "udp", .ctl_name = CTL_UNNUMBERED, },
+	{},
+};
+EXPORT_SYMBOL_GPL(net_udp_ctl_path);
+
 static __net_init int ipv4_sysctl_init_net(struct net *net)
 {
 	struct ctl_table *table;
@@ -871,14 +893,29 @@ static __net_initdata struct pernet_operations ipv4_sysctl_ops = {
 
 static __init int sysctl_ipv4_init(void)
 {
-	struct ctl_table_header *hdr;
+	struct ctl_table_header *hdr_ipv4, *hdr_tcp, *hdr_udp;
+
+	hdr_ipv4 = register_sysctl_paths(net_ipv4_ctl_path, ipv4_table);
+	if (hdr_ipv4 == NULL)
+		return -ENOMEM;
 
-	hdr = register_sysctl_paths(net_ipv4_ctl_path, ipv4_table);
-	if (hdr == NULL)
+	hdr_tcp = register_sysctl_paths(net_tcp_ctl_path, proc_tcp_table);
+	if (hdr_tcp == NULL) {
+		unregister_sysctl_table(hdr_ipv4);
 		return -ENOMEM;
+	}
+
+	hdr_udp = register_sysctl_paths(net_udp_ctl_path, proc_udp_table);
+	if (hdr_udp == NULL) {
+		unregister_sysctl_table(hdr_ipv4);
+		unregister_sysctl_table(hdr_tcp);
+		return -ENOMEM;
+	}
 
 	if (register_pernet_subsys(&ipv4_sysctl_ops)) {
-		unregister_sysctl_table(hdr);
+		unregister_sysctl_table(hdr_ipv4);
+		unregister_sysctl_table(hdr_tcp);
+		unregister_sysctl_table(hdr_udp);
 		return -ENOMEM;
 	}
 
-- 
1.6.0.6



             reply	other threads:[~2009-04-08  2:18 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-08  2:17 Shen Feng [this message]
2009-04-08  2:41 ` [PATCH] IPv4/IPv6: update sysctl files Eric W. Biederman
2009-04-08  2:47 ` Ben Hutchings
2009-04-08  3:28   ` Shen Feng
2009-04-08  7:18     ` David Miller
2009-04-08  8:50       ` Shen Feng
2009-04-08  9:09         ` 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=49DC091C.6070708@cn.fujitsu.com \
    --to=shen@cn.fujitsu.com \
    --cc=akpm@linux-foundation.org \
    --cc=davem@davemloft.net \
    --cc=linux-kernel@vger.kernel.org \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.