: Introduce a netns_core structure.
Subsystems (3)
PATCH 1/6 : Introduce a netns_core structure.
There's already some stuff on the struct net, that should better be folded into netns_core structure. I'm making the per-proto inuse counter be per-net also, which is also a candidate for this, so introduce this structure and populate it a bit.
Signed-off-by Pavel Emelyanov <[email protected]>
--- include/net/net_namespace.h | 6 ++---- include/net/netns/core.h | 13 +++++++++++++ net/core/sysctl_net_core.c | 12 ++++++------ net/socket.c | 2 +- 4 files changed, 22 insertions(+), 11 deletions(-) create mode 100644 include/net/netns/core.h
include/net/net_namespace.h +2 -4
@@ -8,6 +8,7 @@#include <linux/workqueue.h> #include <linux/list.h> +#include <net/netns/core.h> #include <net/netns/unix.h> #include <net/netns/packet.h> #include <net/netns/ipv4.h>
@@ -46,10 +47,7 @@ struct net {struct sock *rtnl;/* rtnetlink socket */ -/* core sysctls */ -struct ctl_table_header *sysctl_core_hdr; -int sysctl_somaxconn; - +struct netns_core core;struct netns_packet packet;struct netns_unix unx;struct netns_ipv4 ipv4;
include/net/netns/core.h new file +13 -0
@@ -0,0 +1,13 @@ +#ifndef __NETNS_CORE_H__ +#define __NETNS_CORE_H__ + +struct ctl_table_header ; + +struct netns_core { +/* core sysctls */ +struct ctl_table_header *sysctl_hdr; + +int sysctl_somaxconn; +}; + +#endif
net/core/sysctl_net_core.c +6 -6
@@ -127,7 +127,7 @@ static struct ctl_table net_core_table[] = { { .ctl_name = NET_CORE_SOMAXCONN, .procname = "somaxconn", - .data = &init_net.sysctl_somaxconn, + .data = &init_net.core.sysctl_somaxconn, .maxlen = sizeof(int), .mode =0644 , .proc_handler = &proc_dointvec
@@ -161,7 +161,7 @@ static __net_init int sysctl_core_net_init(struct net *net) {struct ctl_table *tbl, *tmp; - net->sysctl_somaxconn =SOMAXCONN ; + net->core.sysctl_somaxconn =SOMAXCONN ; tbl = net_core_table;if (net != &init_net) {
@@ -178,9 +178,9 @@ static __net_init int sysctl_core_net_init(struct net *net) } } - net->sysctl_core_hdr =register_net_sysctl_table (net, + net->core.sysctl_hdr =register_net_sysctl_table (net, net_core_path, tbl); -if (net->sysctl_core_hdr ==NULL ) +if (net->core.sysctl_hdr ==NULL ) goto err_reg;return 0 ;
@@ -196,8 +196,8 @@ static __net_exit void sysctl_core_net_exit(struct net *net) {struct ctl_table *tbl; - tbl = net->sysctl_core_hdr->ctl_table_arg; -unregister_net_sysctl_table (net->sysctl_core_hdr); + tbl = net->core.sysctl_hdr->ctl_table_arg; +unregister_net_sysctl_table (net->core.sysctl_hdr);BUG_ON (tbl == net_core_table);kfree (tbl); }
net/socket.c +1 -1
@@ -1375,7 +1375,7 @@ asmlinkage long sys_listen(int fd, int backlog) sock =sockfd_lookup_light (fd, &err, &fput_needed);if (sock) { - somaxconn =sock_net (sock->sk)->sysctl_somaxconn; + somaxconn =sock_net (sock->sk)->core.sysctl_somaxconn;if ((unsigned )backlog > somaxconn) backlog = somaxconn;
Signature · 1 line
1.5.3.4
From: Pavel Emelyanov <[email protected]>
Date: Mon, 31 Mar 2008 16:09:08 +0400
Quoted 6 lines
There's already some stuff on the struct net, that should better be folded into
netns_corestructure. I'm making the per-proto inuse counter be per-net also, which is also a candidate for this, so introduce this structure and populate it a bit.Signed-off-by Pavel Emelyanov <[email protected]>
Applied.