diff --git a/net/appletalk/sysctl_net_atalk.c b/net/appletalk/sysctl_net_atalk.c index 7df1778e221a..621805dfa2f4 100644 --- a/net/appletalk/sysctl_net_atalk.c +++ b/net/appletalk/sysctl_net_atalk.c @@ -49,31 +49,17 @@ static struct ctl_table atalk_table[] = { { 0 }, }; -static struct ctl_table atalk_dir_table[] = { - { - .ctl_name = NET_ATALK, - .procname = "appletalk", - .mode = 0555, - .child = atalk_table, - }, - { 0 }, -}; - -static struct ctl_table atalk_root_table[] = { - { - .ctl_name = CTL_NET, - .procname = "net", - .mode = 0555, - .child = atalk_dir_table, - }, - { 0 }, +static struct ctl_path atalk_path[] = { + { .procname = "net", .ctl_name = CTL_NET, }, + { .procname = "appletalk", .ctl_name = NET_ATALK, }, + { } }; static struct ctl_table_header *atalk_table_header; void atalk_register_sysctl(void) { - atalk_table_header = register_sysctl_table(atalk_root_table); + atalk_table_header = register_sysctl_paths(atalk_path, atalk_table); } void atalk_unregister_sysctl(void) diff --git a/net/bridge/br_netfilter.c b/net/bridge/br_netfilter.c index 859fe4d86698..141f069e77a0 100644 --- a/net/bridge/br_netfilter.c +++ b/net/bridge/br_netfilter.c @@ -967,24 +967,10 @@ static ctl_table brnf_table[] = { { .ctl_name = 0 } }; -static ctl_table brnf_bridge_table[] = { - { - .ctl_name = NET_BRIDGE, - .procname = "bridge", - .mode = 0555, - .child = brnf_table, - }, - { .ctl_name = 0 } -}; - -static ctl_table brnf_net_table[] = { - { - .ctl_name = CTL_NET, - .procname = "net", - .mode = 0555, - .child = brnf_bridge_table, - }, - { .ctl_name = 0 } +static struct ctl_path brnf_path[] = { + { .procname = "net", .ctl_name = CTL_NET, }, + { .procname = "bridge", .ctl_name = NET_BRIDGE, }, + { } }; #endif @@ -996,7 +982,7 @@ int __init br_netfilter_init(void) if (ret < 0) return ret; #ifdef CONFIG_SYSCTL - brnf_sysctl_header = register_sysctl_table(brnf_net_table); + brnf_sysctl_header = register_sysctl_paths(brnf_path, brnf_table); if (brnf_sysctl_header == NULL) { printk(KERN_WARNING "br_netfilter: can't register to sysctl.\n"); diff --git a/net/dccp/sysctl.c b/net/dccp/sysctl.c index c62c05039f69..21295993fdb8 100644 --- a/net/dccp/sysctl.c +++ b/net/dccp/sysctl.c @@ -100,41 +100,19 @@ static struct ctl_table dccp_default_table[] = { { .ctl_name = 0, } }; -static struct ctl_table dccp_table[] = { - { - .ctl_name = NET_DCCP_DEFAULT, - .procname = "default", - .mode = 0555, - .child = dccp_default_table, - }, - { .ctl_name = 0, }, -}; - -static struct ctl_table dccp_dir_table[] = { - { - .ctl_name = NET_DCCP, - .procname = "dccp", - .mode = 0555, - .child = dccp_table, - }, - { .ctl_name = 0, }, -}; - -static struct ctl_table dccp_root_table[] = { - { - .ctl_name = CTL_NET, - .procname = "net", - .mode = 0555, - .child = dccp_dir_table, - }, - { .ctl_name = 0, }, +static struct ctl_path dccp_path[] = { + { .procname = "net", .ctl_name = CTL_NET, }, + { .procname = "dccp", .ctl_name = NET_DCCP, }, + { .procname = "default", .ctl_name = NET_DCCP_DEFAULT, }, + { } }; static struct ctl_table_header *dccp_table_header; int __init dccp_sysctl_init(void) { - dccp_table_header = register_sysctl_table(dccp_root_table); + dccp_table_header = register_sysctl_paths(dccp_path, + dccp_default_table); return dccp_table_header != NULL ? 0 : -ENOMEM; } diff --git a/net/ipx/sysctl_net_ipx.c b/net/ipx/sysctl_net_ipx.c index 0cf526450536..92fef864e852 100644 --- a/net/ipx/sysctl_net_ipx.c +++ b/net/ipx/sysctl_net_ipx.c @@ -28,31 +28,17 @@ static struct ctl_table ipx_table[] = { { 0 }, }; -static struct ctl_table ipx_dir_table[] = { - { - .ctl_name = NET_IPX, - .procname = "ipx", - .mode = 0555, - .child = ipx_table, - }, - { 0 }, -}; - -static struct ctl_table ipx_root_table[] = { - { - .ctl_name = CTL_NET, - .procname = "net", - .mode = 0555, - .child = ipx_dir_table, - }, - { 0 }, +static struct ctl_path ipx_path[] = { + { .procname = "net", .ctl_name = CTL_NET, }, + { .procname = "ipx", .ctl_name = NET_IPX, }, + { } }; static struct ctl_table_header *ipx_table_header; void ipx_register_sysctl(void) { - ipx_table_header = register_sysctl_table(ipx_root_table); + ipx_table_header = register_sysctl_paths(ipx_path, ipx_table); } void ipx_unregister_sysctl(void) diff --git a/net/irda/irsysctl.c b/net/irda/irsysctl.c index 565cbf0421cd..d8aba869ff11 100644 --- a/net/irda/irsysctl.c +++ b/net/irda/irsysctl.c @@ -234,28 +234,10 @@ static ctl_table irda_table[] = { { .ctl_name = 0 } }; -/* One directory */ -static ctl_table irda_net_table[] = { - { - .ctl_name = NET_IRDA, - .procname = "irda", - .maxlen = 0, - .mode = 0555, - .child = irda_table - }, - { .ctl_name = 0 } -}; - -/* The parent directory */ -static ctl_table irda_root_table[] = { - { - .ctl_name = CTL_NET, - .procname = "net", - .maxlen = 0, - .mode = 0555, - .child = irda_net_table - }, - { .ctl_name = 0 } +static struct ctl_path irda_path[] = { + { .procname = "net", .ctl_name = CTL_NET, }, + { .procname = "irda", .ctl_name = NET_IRDA, }, + { } }; static struct ctl_table_header *irda_table_header; @@ -268,7 +250,7 @@ static struct ctl_table_header *irda_table_header; */ int __init irda_sysctl_register(void) { - irda_table_header = register_sysctl_table(irda_root_table); + irda_table_header = register_sysctl_paths(irda_path, irda_table); if (!irda_table_header) return -ENOMEM; diff --git a/net/llc/sysctl_net_llc.c b/net/llc/sysctl_net_llc.c index 46992d036017..5bef1dcf18e3 100644 --- a/net/llc/sysctl_net_llc.c +++ b/net/llc/sysctl_net_llc.c @@ -92,31 +92,17 @@ static struct ctl_table llc_table[] = { { 0 }, }; -static struct ctl_table llc_dir_table[] = { - { - .ctl_name = NET_LLC, - .procname = "llc", - .mode = 0555, - .child = llc_table, - }, - { 0 }, -}; - -static struct ctl_table llc_root_table[] = { - { - .ctl_name = CTL_NET, - .procname = "net", - .mode = 0555, - .child = llc_dir_table, - }, - { 0 }, +static struct ctl_path llc_path[] = { + { .procname = "net", .ctl_name = CTL_NET, }, + { .procname = "llc", .ctl_name = NET_LLC, }, + { } }; static struct ctl_table_header *llc_table_header; int __init llc_sysctl_init(void) { - llc_table_header = register_sysctl_table(llc_root_table); + llc_table_header = register_sysctl_paths(llc_path, llc_table); return llc_table_header ? 0 : -ENOMEM; } diff --git a/net/netrom/sysctl_net_netrom.c b/net/netrom/sysctl_net_netrom.c index 2ea68da01fb8..34c96c9674df 100644 --- a/net/netrom/sysctl_net_netrom.c +++ b/net/netrom/sysctl_net_netrom.c @@ -170,29 +170,15 @@ static ctl_table nr_table[] = { { .ctl_name = 0 } }; -static ctl_table nr_dir_table[] = { - { - .ctl_name = NET_NETROM, - .procname = "netrom", - .mode = 0555, - .child = nr_table - }, - { .ctl_name = 0 } -}; - -static ctl_table nr_root_table[] = { - { - .ctl_name = CTL_NET, - .procname = "net", - .mode = 0555, - .child = nr_dir_table - }, - { .ctl_name = 0 } +static struct ctl_path nr_path[] = { + { .procname = "net", .ctl_name = CTL_NET, }, + { .procname = "netrom", .ctl_name = NET_NETROM, }, + { } }; void __init nr_register_sysctl(void) { - nr_table_header = register_sysctl_table(nr_root_table); + nr_table_header = register_sysctl_paths(nr_path, nr_table); } void nr_unregister_sysctl(void) diff --git a/net/rose/sysctl_net_rose.c b/net/rose/sysctl_net_rose.c index 455b0555a669..20be3485a97f 100644 --- a/net/rose/sysctl_net_rose.c +++ b/net/rose/sysctl_net_rose.c @@ -138,29 +138,15 @@ static ctl_table rose_table[] = { { .ctl_name = 0 } }; -static ctl_table rose_dir_table[] = { - { - .ctl_name = NET_ROSE, - .procname = "rose", - .mode = 0555, - .child = rose_table - }, - { .ctl_name = 0 } -}; - -static ctl_table rose_root_table[] = { - { - .ctl_name = CTL_NET, - .procname = "net", - .mode = 0555, - .child = rose_dir_table - }, - { .ctl_name = 0 } +static struct ctl_path rose_path[] = { + { .procname = "net", .ctl_name = CTL_NET, }, + { .procname = "rose", .ctl_name = NET_ROSE, }, + { } }; void __init rose_register_sysctl(void) { - rose_table_header = register_sysctl_table(rose_root_table); + rose_table_header = register_sysctl_paths(rose_path, rose_table); } void rose_unregister_sysctl(void) diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c index da4f15734fb1..5eb6ea829b54 100644 --- a/net/sctp/sysctl.c +++ b/net/sctp/sysctl.c @@ -275,24 +275,10 @@ static ctl_table sctp_table[] = { { .ctl_name = 0 } }; -static ctl_table sctp_net_table[] = { - { - .ctl_name = NET_SCTP, - .procname = "sctp", - .mode = 0555, - .child = sctp_table - }, - { .ctl_name = 0 } -}; - -static ctl_table sctp_root_table[] = { - { - .ctl_name = CTL_NET, - .procname = "net", - .mode = 0555, - .child = sctp_net_table - }, - { .ctl_name = 0 } +static struct ctl_path sctp_path[] = { + { .procname = "net", .ctl_name = CTL_NET, }, + { .procname = "sctp", .ctl_name = NET_SCTP, }, + { } }; static struct ctl_table_header * sctp_sysctl_header; @@ -300,7 +286,7 @@ static struct ctl_table_header * sctp_sysctl_header; /* Sysctl registration. */ void sctp_sysctl_register(void) { - sctp_sysctl_header = register_sysctl_table(sctp_root_table); + sctp_sysctl_header = register_sysctl_paths(sctp_path, sctp_table); } /* Sysctl deregistration. */ diff --git a/net/x25/sysctl_net_x25.c b/net/x25/sysctl_net_x25.c index a59b77f18234..6ebda25c24e9 100644 --- a/net/x25/sysctl_net_x25.c +++ b/net/x25/sysctl_net_x25.c @@ -84,29 +84,15 @@ static struct ctl_table x25_table[] = { { 0, }, }; -static struct ctl_table x25_dir_table[] = { - { - .ctl_name = NET_X25, - .procname = "x25", - .mode = 0555, - .child = x25_table, - }, - { 0, }, -}; - -static struct ctl_table x25_root_table[] = { - { - .ctl_name = CTL_NET, - .procname = "net", - .mode = 0555, - .child = x25_dir_table, - }, - { 0, }, +static struct ctl_path x25_path[] = { + { .procname = "net", .ctl_name = CTL_NET, }, + { .procname = "x25", .ctl_name = NET_X25, }, + { } }; void __init x25_register_sysctl(void) { - x25_table_header = register_sysctl_table(x25_root_table); + x25_table_header = register_sysctl_paths(x25_path, x25_table); } void x25_unregister_sysctl(void)