Use ctl paths to register net/ipv4/ table
Subsystems (3)
PATCH 4/6 Use ctl paths to register net/ipv4/ table
This is the same as I did for the net/core/ table in the second patch in his series: use the paths and isolate the whole table in the .c file.
Signed-off-by Pavel Emelyanov <[email protected]>
---
include/net/ip.h +0 -2
@@ -393,6 +393,4 @@ int ipv4_doint_and_flush_strategy(ctl_table *table, int __user *name, int nlen,extern int ip_misc_proc_init (void );#endif -extern struct ctl_table ipv4_table[]; -#endif /* _IP_H */
net/ipv4/sysctl_net_ipv4.c +18 -1
@@ -13,6 +13,7 @@#include <linux/igmp.h> #include <linux/inetdevice.h> #include <linux/seqlock.h> +#include <linux/init.h> #include <net/snmp.h> #include <net/icmp.h> #include <net/ip.h>
@@ -247,7 +248,7 @@ static int strategy_allowed_congestion_control(ctl_table *table, int __user *nam } -ctl_table ipv4_table[] = { +static struct ctl_table ipv4_table[] = { { .ctl_name =NET_IPV4_TCP_TIMESTAMPS , .procname ="tcp_timestamps" ,
@@ -878,3 +879,19 @@ ctl_table ipv4_table[] = { }, { .ctl_name = 0 } }; + +static __initdata struct ctl_path net_ipv4_path[] = { + { .procname ="net" , .ctl_name =CTL_NET , }, + { .procname ="ipv4" , .ctl_name =NET_IPV4 , }, + { }, +}; + +static __init int sysctl_ipv4_init (void ) +{ +struct ctl_table_header *hdr; + + hdr =register_sysctl_paths (net_ipv4_path, ipv4_table); +return hdr ==NULL ? -ENOMEM :0 ; +} + +__initcall (sysctl_ipv4_init);
net/sysctl_net.c +0 -8
@@ -31,14 +31,6 @@#endif struct ctl_table net_table[] = { -#ifdef CONFIG_INET - { - .ctl_name = NET_IPV4, - .procname = "ipv4", - .mode = 0555, - .child = ipv4_table - }, -#endif #ifdef CONFIG_TR { .ctl_name = NET_TR,
Signature · 1 line
1.5.3.4