aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEric W. Biederman <ebiederm@xmission.com>2007-02-14 03:34:09 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-14 11:09:59 -0500
commit0b4d414714f0d2f922d39424b0c5c82ad900a381 (patch)
tree5079ec59a5622c9cacfe0fce484ba2c4626c406f
parentae836810263509ff7a3c2c021754ce6f66b3fab6 (diff)
[PATCH] sysctl: remove insert_at_head from register_sysctl
The semantic effect of insert_at_head is that it would allow new registered sysctl entries to override existing sysctl entries of the same name. Which is pain for caching and the proc interface never implemented. I have done an audit and discovered that none of the current users of register_sysctl care as (excpet for directories) they do not register duplicate sysctl entries. So this patch simply removes the support for overriding existing entries in the sys_sysctl interface since no one uses it or cares and it makes future enhancments harder. Signed-off-by: Eric W. Biederman <ebiederm@xmission.com> Acked-by: Ralf Baechle <ralf@linux-mips.org> Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Russell King <rmk@arm.linux.org.uk> Cc: David Howells <dhowells@redhat.com> Cc: "Luck, Tony" <tony.luck@intel.com> Cc: Ralf Baechle <ralf@linux-mips.org> Cc: Paul Mackerras <paulus@samba.org> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: Andi Kleen <ak@muc.de> Cc: Jens Axboe <axboe@kernel.dk> Cc: Corey Minyard <minyard@acm.org> Cc: Neil Brown <neilb@suse.de> Cc: "John W. Linville" <linville@tuxdriver.com> Cc: James Bottomley <James.Bottomley@steeleye.com> Cc: Jan Kara <jack@ucw.cz> Cc: Trond Myklebust <trond.myklebust@fys.uio.no> Cc: Mark Fasheh <mark.fasheh@oracle.com> Cc: David Chinner <dgc@sgi.com> Cc: "David S. Miller" <davem@davemloft.net> Cc: Patrick McHardy <kaber@trash.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--arch/arm/kernel/isa.c2
-rw-r--r--arch/frv/kernel/pm.c2
-rw-r--r--arch/frv/kernel/sysctl.c2
-rw-r--r--arch/ia64/kernel/crash.c2
-rw-r--r--arch/ia64/kernel/perfmon.c2
-rw-r--r--arch/ia64/sn/kernel/xpc_main.c2
-rw-r--r--arch/mips/au1000/common/power.c2
-rw-r--r--arch/mips/lasat/sysctl.c2
-rw-r--r--arch/powerpc/kernel/idle.c2
-rw-r--r--arch/ppc/kernel/ppc_htab.c2
-rw-r--r--arch/s390/appldata/appldata_base.c4
-rw-r--r--arch/s390/kernel/debug.c2
-rw-r--r--arch/s390/mm/cmm.c2
-rw-r--r--arch/sh64/kernel/traps.c2
-rw-r--r--arch/x86_64/ia32/ia32_binfmt.c2
-rw-r--r--arch/x86_64/kernel/vsyscall.c2
-rw-r--r--arch/x86_64/mm/init.c2
-rw-r--r--drivers/cdrom/cdrom.c2
-rw-r--r--drivers/char/hpet.c2
-rw-r--r--drivers/char/ipmi/ipmi_poweroff.c2
-rw-r--r--drivers/char/rtc.c2
-rw-r--r--drivers/macintosh/mac_hid.c2
-rw-r--r--drivers/md/md.c2
-rw-r--r--drivers/net/wireless/arlan-proc.c2
-rw-r--r--drivers/parport/procfs.c6
-rw-r--r--drivers/scsi/scsi_sysctl.c2
-rw-r--r--fs/coda/sysctl.c2
-rw-r--r--fs/dquot.c2
-rw-r--r--fs/lockd/svc.c2
-rw-r--r--fs/nfs/sysctl.c2
-rw-r--r--fs/ntfs/sysctl.c2
-rw-r--r--fs/ocfs2/cluster/nodemanager.c2
-rw-r--r--fs/xfs/linux-2.6/xfs_sysctl.c2
-rw-r--r--include/linux/sysctl.h4
-rw-r--r--ipc/ipc_sysctl.c2
-rw-r--r--ipc/mqueue.c2
-rw-r--r--kernel/sysctl.c9
-rw-r--r--kernel/utsname_sysctl.c2
-rw-r--r--net/appletalk/sysctl_net_atalk.c2
-rw-r--r--net/ax25/sysctl_net_ax25.c2
-rw-r--r--net/bridge/br_netfilter.c2
-rw-r--r--net/core/neighbour.c2
-rw-r--r--net/dccp/sysctl.c2
-rw-r--r--net/decnet/dn_dev.c2
-rw-r--r--net/decnet/sysctl_net_decnet.c2
-rw-r--r--net/ipv4/devinet.c4
-rw-r--r--net/ipv4/ipvs/ip_vs_ctl.c2
-rw-r--r--net/ipv4/ipvs/ip_vs_lblc.c2
-rw-r--r--net/ipv4/ipvs/ip_vs_lblcr.c2
-rw-r--r--net/ipv4/netfilter/ip_conntrack_proto_sctp.c2
-rw-r--r--net/ipv4/netfilter/ip_conntrack_standalone.c2
-rw-r--r--net/ipv4/netfilter/ip_queue.c2
-rw-r--r--net/ipv6/addrconf.c4
-rw-r--r--net/ipv6/netfilter/ip6_queue.c2
-rw-r--r--net/ipv6/sysctl_net_ipv6.c2
-rw-r--r--net/ipx/sysctl_net_ipx.c2
-rw-r--r--net/irda/irsysctl.c2
-rw-r--r--net/llc/sysctl_net_llc.c2
-rw-r--r--net/netfilter/nf_conntrack_standalone.c2
-rw-r--r--net/netfilter/nf_sysctl.c2
-rw-r--r--net/netrom/sysctl_net_netrom.c2
-rw-r--r--net/rose/sysctl_net_rose.c2
-rw-r--r--net/rxrpc/sysctl.c2
-rw-r--r--net/sctp/sysctl.c2
-rw-r--r--net/sunrpc/sysctl.c2
-rw-r--r--net/sunrpc/xprtsock.c2
-rw-r--r--net/unix/sysctl_net_unix.c2
-rw-r--r--net/x25/sysctl_net_x25.c2
68 files changed, 75 insertions, 80 deletions
diff --git a/arch/arm/kernel/isa.c b/arch/arm/kernel/isa.c
index 54bbd9fe255c..50a30bc91872 100644
--- a/arch/arm/kernel/isa.c
+++ b/arch/arm/kernel/isa.c
@@ -70,5 +70,5 @@ register_isa_ports(unsigned int membase, unsigned int portbase, unsigned int por
70 isa_membase = membase; 70 isa_membase = membase;
71 isa_portbase = portbase; 71 isa_portbase = portbase;
72 isa_portshift = portshift; 72 isa_portshift = portshift;
73 isa_sysctl_header = register_sysctl_table(ctl_bus, 0); 73 isa_sysctl_header = register_sysctl_table(ctl_bus);
74} 74}
diff --git a/arch/frv/kernel/pm.c b/arch/frv/kernel/pm.c
index aa503338985f..c57ce3f1f2e2 100644
--- a/arch/frv/kernel/pm.c
+++ b/arch/frv/kernel/pm.c
@@ -455,7 +455,7 @@ static struct ctl_table pm_dir_table[] =
455 */ 455 */
456static int __init pm_init(void) 456static int __init pm_init(void)
457{ 457{
458 register_sysctl_table(pm_dir_table, 0); 458 register_sysctl_table(pm_dir_table);
459 return 0; 459 return 0;
460} 460}
461 461
diff --git a/arch/frv/kernel/sysctl.c b/arch/frv/kernel/sysctl.c
index 577ad16cf840..3e9d7e03fb95 100644
--- a/arch/frv/kernel/sysctl.c
+++ b/arch/frv/kernel/sysctl.c
@@ -216,7 +216,7 @@ static struct ctl_table frv_dir_table[] =
216 */ 216 */
217static int __init frv_sysctl_init(void) 217static int __init frv_sysctl_init(void)
218{ 218{
219 register_sysctl_table(frv_dir_table, 0); 219 register_sysctl_table(frv_dir_table);
220 return 0; 220 return 0;
221} 221}
222 222
diff --git a/arch/ia64/kernel/crash.c b/arch/ia64/kernel/crash.c
index 37bb16f07fc3..5cdd2f5fa064 100644
--- a/arch/ia64/kernel/crash.c
+++ b/arch/ia64/kernel/crash.c
@@ -222,7 +222,7 @@ machine_crash_setup(void)
222 if((ret = register_die_notifier(&kdump_init_notifier_nb)) != 0) 222 if((ret = register_die_notifier(&kdump_init_notifier_nb)) != 0)
223 return ret; 223 return ret;
224#ifdef CONFIG_SYSCTL 224#ifdef CONFIG_SYSCTL
225 register_sysctl_table(sys_table, 0); 225 register_sysctl_table(sys_table);
226#endif 226#endif
227 return 0; 227 return 0;
228} 228}
diff --git a/arch/ia64/kernel/perfmon.c b/arch/ia64/kernel/perfmon.c
index d2f299d98977..2ecb20b551e1 100644
--- a/arch/ia64/kernel/perfmon.c
+++ b/arch/ia64/kernel/perfmon.c
@@ -6726,7 +6726,7 @@ pfm_init(void)
6726 /* 6726 /*
6727 * create /proc/sys/kernel/perfmon (for debugging purposes) 6727 * create /proc/sys/kernel/perfmon (for debugging purposes)
6728 */ 6728 */
6729 pfm_sysctl_header = register_sysctl_table(pfm_sysctl_root, 0); 6729 pfm_sysctl_header = register_sysctl_table(pfm_sysctl_root);
6730 6730
6731 /* 6731 /*
6732 * initialize all our spinlocks 6732 * initialize all our spinlocks
diff --git a/arch/ia64/sn/kernel/xpc_main.c b/arch/ia64/sn/kernel/xpc_main.c
index e04f7b5f2aab..68355ef6f841 100644
--- a/arch/ia64/sn/kernel/xpc_main.c
+++ b/arch/ia64/sn/kernel/xpc_main.c
@@ -1241,7 +1241,7 @@ xpc_init(void)
1241 snprintf(xpc_part->bus_id, BUS_ID_SIZE, "part"); 1241 snprintf(xpc_part->bus_id, BUS_ID_SIZE, "part");
1242 snprintf(xpc_chan->bus_id, BUS_ID_SIZE, "chan"); 1242 snprintf(xpc_chan->bus_id, BUS_ID_SIZE, "chan");
1243 1243
1244 xpc_sysctl = register_sysctl_table(xpc_sys_dir, 0); 1244 xpc_sysctl = register_sysctl_table(xpc_sys_dir);
1245 1245
1246 /* 1246 /*
1247 * The first few fields of each entry of xpc_partitions[] need to 1247 * The first few fields of each entry of xpc_partitions[] need to
diff --git a/arch/mips/au1000/common/power.c b/arch/mips/au1000/common/power.c
index 31256b85df6d..3901e8e04755 100644
--- a/arch/mips/au1000/common/power.c
+++ b/arch/mips/au1000/common/power.c
@@ -461,7 +461,7 @@ static struct ctl_table pm_dir_table[] = {
461 */ 461 */
462static int __init pm_init(void) 462static int __init pm_init(void)
463{ 463{
464 register_sysctl_table(pm_dir_table, 0); 464 register_sysctl_table(pm_dir_table);
465 return 0; 465 return 0;
466} 466}
467 467
diff --git a/arch/mips/lasat/sysctl.c b/arch/mips/lasat/sysctl.c
index c04e82fb9d59..699ab1886ceb 100644
--- a/arch/mips/lasat/sysctl.c
+++ b/arch/mips/lasat/sysctl.c
@@ -432,7 +432,7 @@ static int __init lasat_register_sysctl(void)
432 struct ctl_table_header *lasat_table_header; 432 struct ctl_table_header *lasat_table_header;
433 433
434 lasat_table_header = 434 lasat_table_header =
435 register_sysctl_table(lasat_root_table, 0); 435 register_sysctl_table(lasat_root_table);
436 436
437 return 0; 437 return 0;
438} 438}
diff --git a/arch/powerpc/kernel/idle.c b/arch/powerpc/kernel/idle.c
index 8b27bb1a5b31..6e7f50967bab 100644
--- a/arch/powerpc/kernel/idle.c
+++ b/arch/powerpc/kernel/idle.c
@@ -125,7 +125,7 @@ static ctl_table powersave_nap_sysctl_root[] = {
125static int __init 125static int __init
126register_powersave_nap_sysctl(void) 126register_powersave_nap_sysctl(void)
127{ 127{
128 register_sysctl_table(powersave_nap_sysctl_root, 0); 128 register_sysctl_table(powersave_nap_sysctl_root);
129 129
130 return 0; 130 return 0;
131} 131}
diff --git a/arch/ppc/kernel/ppc_htab.c b/arch/ppc/kernel/ppc_htab.c
index 77b20ff672b8..0a7e42d54eaf 100644
--- a/arch/ppc/kernel/ppc_htab.c
+++ b/arch/ppc/kernel/ppc_htab.c
@@ -457,7 +457,7 @@ static ctl_table htab_sysctl_root[] = {
457static int __init 457static int __init
458register_ppc_htab_sysctl(void) 458register_ppc_htab_sysctl(void)
459{ 459{
460 register_sysctl_table(htab_sysctl_root, 0); 460 register_sysctl_table(htab_sysctl_root);
461 461
462 return 0; 462 return 0;
463} 463}
diff --git a/arch/s390/appldata/appldata_base.c b/arch/s390/appldata/appldata_base.c
index 58cefcf2d2cc..0c3cf4b16ae4 100644
--- a/arch/s390/appldata/appldata_base.c
+++ b/arch/s390/appldata/appldata_base.c
@@ -506,7 +506,7 @@ int appldata_register_ops(struct appldata_ops *ops)
506 506
507 ops->ctl_table[3].ctl_name = 0; 507 ops->ctl_table[3].ctl_name = 0;
508 508
509 ops->sysctl_header = register_sysctl_table(ops->ctl_table,0); 509 ops->sysctl_header = register_sysctl_table(ops->ctl_table);
510 510
511 P_INFO("%s-ops registered!\n", ops->name); 511 P_INFO("%s-ops registered!\n", ops->name);
512 return 0; 512 return 0;
@@ -606,7 +606,7 @@ static int __init appldata_init(void)
606 /* Register cpu hotplug notifier */ 606 /* Register cpu hotplug notifier */
607 register_hotcpu_notifier(&appldata_nb); 607 register_hotcpu_notifier(&appldata_nb);
608 608
609 appldata_sysctl_header = register_sysctl_table(appldata_dir_table, 0); 609 appldata_sysctl_header = register_sysctl_table(appldata_dir_table);
610#ifdef MODULE 610#ifdef MODULE
611 appldata_dir_table[0].de->owner = THIS_MODULE; 611 appldata_dir_table[0].de->owner = THIS_MODULE;
612 appldata_table[0].de->owner = THIS_MODULE; 612 appldata_table[0].de->owner = THIS_MODULE;
diff --git a/arch/s390/kernel/debug.c b/arch/s390/kernel/debug.c
index 1b95148dc73b..eca3fe595ff4 100644
--- a/arch/s390/kernel/debug.c
+++ b/arch/s390/kernel/debug.c
@@ -1053,7 +1053,7 @@ __init debug_init(void)
1053{ 1053{
1054 int rc = 0; 1054 int rc = 0;
1055 1055
1056 s390dbf_sysctl_header = register_sysctl_table(s390dbf_dir_table, 0); 1056 s390dbf_sysctl_header = register_sysctl_table(s390dbf_dir_table);
1057 down(&debug_lock); 1057 down(&debug_lock);
1058 debug_debugfs_root_entry = debugfs_create_dir(DEBUG_DIR_ROOT,NULL); 1058 debug_debugfs_root_entry = debugfs_create_dir(DEBUG_DIR_ROOT,NULL);
1059 printk(KERN_INFO "debug: Initialization complete\n"); 1059 printk(KERN_INFO "debug: Initialization complete\n");
diff --git a/arch/s390/mm/cmm.c b/arch/s390/mm/cmm.c
index c6d6ddeb5e33..c5b2f4f078bc 100644
--- a/arch/s390/mm/cmm.c
+++ b/arch/s390/mm/cmm.c
@@ -418,7 +418,7 @@ cmm_init (void)
418 int rc = -ENOMEM; 418 int rc = -ENOMEM;
419 419
420#ifdef CONFIG_CMM_PROC 420#ifdef CONFIG_CMM_PROC
421 cmm_sysctl_header = register_sysctl_table(cmm_dir_table, 0); 421 cmm_sysctl_header = register_sysctl_table(cmm_dir_table);
422 if (!cmm_sysctl_header) 422 if (!cmm_sysctl_header)
423 goto out; 423 goto out;
424#endif 424#endif
diff --git a/arch/sh64/kernel/traps.c b/arch/sh64/kernel/traps.c
index 02cca742cf03..c346d7ef9280 100644
--- a/arch/sh64/kernel/traps.c
+++ b/arch/sh64/kernel/traps.c
@@ -960,7 +960,7 @@ static ctl_table sh64_root[] = {
960static struct ctl_table_header *sysctl_header; 960static struct ctl_table_header *sysctl_header;
961static int __init init_sysctl(void) 961static int __init init_sysctl(void)
962{ 962{
963 sysctl_header = register_sysctl_table(sh64_root, 0); 963 sysctl_header = register_sysctl_table(sh64_root);
964 return 0; 964 return 0;
965} 965}
966 966
diff --git a/arch/x86_64/ia32/ia32_binfmt.c b/arch/x86_64/ia32/ia32_binfmt.c
index 354a0a01ec2d..071100ea1251 100644
--- a/arch/x86_64/ia32/ia32_binfmt.c
+++ b/arch/x86_64/ia32/ia32_binfmt.c
@@ -367,7 +367,7 @@ static ctl_table abi_root_table2[] = {
367 367
368static __init int ia32_binfmt_init(void) 368static __init int ia32_binfmt_init(void)
369{ 369{
370 register_sysctl_table(abi_root_table2, 0); 370 register_sysctl_table(abi_root_table2);
371 return 0; 371 return 0;
372} 372}
373__initcall(ia32_binfmt_init); 373__initcall(ia32_binfmt_init);
diff --git a/arch/x86_64/kernel/vsyscall.c b/arch/x86_64/kernel/vsyscall.c
index c0e2b48be308..313dc6ad780b 100644
--- a/arch/x86_64/kernel/vsyscall.c
+++ b/arch/x86_64/kernel/vsyscall.c
@@ -301,7 +301,7 @@ static int __init vsyscall_init(void)
301 BUG_ON((unsigned long) &vgetcpu != VSYSCALL_ADDR(__NR_vgetcpu)); 301 BUG_ON((unsigned long) &vgetcpu != VSYSCALL_ADDR(__NR_vgetcpu));
302 map_vsyscall(); 302 map_vsyscall();
303#ifdef CONFIG_SYSCTL 303#ifdef CONFIG_SYSCTL
304 register_sysctl_table(kernel_root_table2, 0); 304 register_sysctl_table(kernel_root_table2);
305#endif 305#endif
306 on_each_cpu(cpu_vsyscall_init, NULL, 0, 1); 306 on_each_cpu(cpu_vsyscall_init, NULL, 0, 1);
307 hotcpu_notifier(cpu_vsyscall_notifier, 0); 307 hotcpu_notifier(cpu_vsyscall_notifier, 0);
diff --git a/arch/x86_64/mm/init.c b/arch/x86_64/mm/init.c
index a5c12ea57683..ec31534eb104 100644
--- a/arch/x86_64/mm/init.c
+++ b/arch/x86_64/mm/init.c
@@ -734,7 +734,7 @@ static ctl_table debug_root_table2[] = {
734 734
735static __init int x8664_sysctl_init(void) 735static __init int x8664_sysctl_init(void)
736{ 736{
737 register_sysctl_table(debug_root_table2, 0); 737 register_sysctl_table(debug_root_table2);
738 return 0; 738 return 0;
739} 739}
740__initcall(x8664_sysctl_init); 740__initcall(x8664_sysctl_init);
diff --git a/drivers/cdrom/cdrom.c b/drivers/cdrom/cdrom.c
index 14f72c477acc..b36f44d4d1bf 100644
--- a/drivers/cdrom/cdrom.c
+++ b/drivers/cdrom/cdrom.c
@@ -3553,7 +3553,7 @@ static void cdrom_sysctl_register(void)
3553 if (initialized == 1) 3553 if (initialized == 1)
3554 return; 3554 return;
3555 3555
3556 cdrom_sysctl_header = register_sysctl_table(cdrom_root_table, 0); 3556 cdrom_sysctl_header = register_sysctl_table(cdrom_root_table);
3557 3557
3558 /* set the defaults */ 3558 /* set the defaults */
3559 cdrom_sysctl_settings.autoclose = autoclose; 3559 cdrom_sysctl_settings.autoclose = autoclose;
diff --git a/drivers/char/hpet.c b/drivers/char/hpet.c
index 81be1db18c4b..0be700f4e8fd 100644
--- a/drivers/char/hpet.c
+++ b/drivers/char/hpet.c
@@ -1018,7 +1018,7 @@ static int __init hpet_init(void)
1018 if (result < 0) 1018 if (result < 0)
1019 return -ENODEV; 1019 return -ENODEV;
1020 1020
1021 sysctl_header = register_sysctl_table(dev_root, 0); 1021 sysctl_header = register_sysctl_table(dev_root);
1022 1022
1023 result = acpi_bus_register_driver(&hpet_acpi_driver); 1023 result = acpi_bus_register_driver(&hpet_acpi_driver);
1024 if (result < 0) { 1024 if (result < 0) {
diff --git a/drivers/char/ipmi/ipmi_poweroff.c b/drivers/char/ipmi/ipmi_poweroff.c
index b3ae65e2ba0c..e02893b7b300 100644
--- a/drivers/char/ipmi/ipmi_poweroff.c
+++ b/drivers/char/ipmi/ipmi_poweroff.c
@@ -686,7 +686,7 @@ static int ipmi_poweroff_init (void)
686 printk(KERN_INFO PFX "Power cycle is enabled.\n"); 686 printk(KERN_INFO PFX "Power cycle is enabled.\n");
687 687
688#ifdef CONFIG_PROC_FS 688#ifdef CONFIG_PROC_FS
689 ipmi_table_header = register_sysctl_table(ipmi_root_table, 0); 689 ipmi_table_header = register_sysctl_table(ipmi_root_table);
690 if (!ipmi_table_header) { 690 if (!ipmi_table_header) {
691 printk(KERN_ERR PFX "Unable to register powercycle sysctl\n"); 691 printk(KERN_ERR PFX "Unable to register powercycle sysctl\n");
692 rv = -ENOMEM; 692 rv = -ENOMEM;
diff --git a/drivers/char/rtc.c b/drivers/char/rtc.c
index 9620abb2a6dc..c7dac9b13351 100644
--- a/drivers/char/rtc.c
+++ b/drivers/char/rtc.c
@@ -316,7 +316,7 @@ static struct ctl_table_header *sysctl_header;
316 316
317static int __init init_sysctl(void) 317static int __init init_sysctl(void)
318{ 318{
319 sysctl_header = register_sysctl_table(dev_root, 0); 319 sysctl_header = register_sysctl_table(dev_root);
320 return 0; 320 return 0;
321} 321}
322 322
diff --git a/drivers/macintosh/mac_hid.c b/drivers/macintosh/mac_hid.c
index 038a9102a8be..c1fd816e9f09 100644
--- a/drivers/macintosh/mac_hid.c
+++ b/drivers/macintosh/mac_hid.c
@@ -138,7 +138,7 @@ int __init mac_hid_init(void)
138 return err; 138 return err;
139 139
140#if defined(CONFIG_SYSCTL) 140#if defined(CONFIG_SYSCTL)
141 mac_hid_sysctl_header = register_sysctl_table(mac_hid_root_dir, 0); 141 mac_hid_sysctl_header = register_sysctl_table(mac_hid_root_dir);
142#endif /* CONFIG_SYSCTL */ 142#endif /* CONFIG_SYSCTL */
143 143
144 return 0; 144 return 0;
diff --git a/drivers/md/md.c b/drivers/md/md.c
index ee86df8092a1..05febfd9f071 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -5581,7 +5581,7 @@ static int __init md_init(void)
5581 md_probe, NULL, NULL); 5581 md_probe, NULL, NULL);
5582 5582
5583 register_reboot_notifier(&md_notifier); 5583 register_reboot_notifier(&md_notifier);
5584 raid_table_header = register_sysctl_table(raid_root_table, 0); 5584 raid_table_header = register_sysctl_table(raid_root_table);
5585 5585
5586 md_geninit(); 5586 md_geninit();
5587 return (0); 5587 return (0);
diff --git a/drivers/net/wireless/arlan-proc.c b/drivers/net/wireless/arlan-proc.c
index 20499a6215cc..015abd928ab0 100644
--- a/drivers/net/wireless/arlan-proc.c
+++ b/drivers/net/wireless/arlan-proc.c
@@ -1244,7 +1244,7 @@ int __init init_arlan_proc(void)
1244 return 0; 1244 return 0;
1245 for (i = 0; i < MAX_ARLANS && arlan_device[i]; i++) 1245 for (i = 0; i < MAX_ARLANS && arlan_device[i]; i++)
1246 arlan_table[i].ctl_name = i + 1; 1246 arlan_table[i].ctl_name = i + 1;
1247 arlan_device_sysctl_header = register_sysctl_table(arlan_root_table, 0); 1247 arlan_device_sysctl_header = register_sysctl_table(arlan_root_table);
1248 if (!arlan_device_sysctl_header) 1248 if (!arlan_device_sysctl_header)
1249 return -1; 1249 return -1;
1250 1250
diff --git a/drivers/parport/procfs.c b/drivers/parport/procfs.c
index 9a7f1d49dec1..bdbdab9285ca 100644
--- a/drivers/parport/procfs.c
+++ b/drivers/parport/procfs.c
@@ -518,7 +518,7 @@ int parport_proc_register(struct parport *port)
518 t->parport_dir[0].child = t->port_dir; 518 t->parport_dir[0].child = t->port_dir;
519 t->dev_dir[0].child = t->parport_dir; 519 t->dev_dir[0].child = t->parport_dir;
520 520
521 t->sysctl_header = register_sysctl_table(t->dev_dir, 0); 521 t->sysctl_header = register_sysctl_table(t->dev_dir);
522 if (t->sysctl_header == NULL) { 522 if (t->sysctl_header == NULL) {
523 kfree(t); 523 kfree(t);
524 t = NULL; 524 t = NULL;
@@ -574,7 +574,7 @@ int parport_device_proc_register(struct pardevice *device)
574 t->device_dir[0].child = t->vars; 574 t->device_dir[0].child = t->vars;
575 t->vars[0].data = &device->timeslice; 575 t->vars[0].data = &device->timeslice;
576 576
577 t->sysctl_header = register_sysctl_table(t->dev_dir, 0); 577 t->sysctl_header = register_sysctl_table(t->dev_dir);
578 if (t->sysctl_header == NULL) { 578 if (t->sysctl_header == NULL) {
579 kfree(t); 579 kfree(t);
580 t = NULL; 580 t = NULL;
@@ -597,7 +597,7 @@ int parport_device_proc_unregister(struct pardevice *device)
597static int __init parport_default_proc_register(void) 597static int __init parport_default_proc_register(void)
598{ 598{
599 parport_default_sysctl_table.sysctl_header = 599 parport_default_sysctl_table.sysctl_header =
600 register_sysctl_table(parport_default_sysctl_table.dev_dir, 0); 600 register_sysctl_table(parport_default_sysctl_table.dev_dir);
601 return 0; 601 return 0;
602} 602}
603 603
diff --git a/drivers/scsi/scsi_sysctl.c b/drivers/scsi/scsi_sysctl.c
index b16b775da7cc..6cfaaa2d0c81 100644
--- a/drivers/scsi/scsi_sysctl.c
+++ b/drivers/scsi/scsi_sysctl.c
@@ -41,7 +41,7 @@ static struct ctl_table_header *scsi_table_header;
41 41
42int __init scsi_init_sysctl(void) 42int __init scsi_init_sysctl(void)
43{ 43{
44 scsi_table_header = register_sysctl_table(scsi_root_table, 0); 44 scsi_table_header = register_sysctl_table(scsi_root_table);
45 if (!scsi_table_header) 45 if (!scsi_table_header)
46 return -ENOMEM; 46 return -ENOMEM;
47 return 0; 47 return 0;
diff --git a/fs/coda/sysctl.c b/fs/coda/sysctl.c
index 8e50642f57e8..c57a1fa7cf23 100644
--- a/fs/coda/sysctl.c
+++ b/fs/coda/sysctl.c
@@ -271,7 +271,7 @@ void coda_sysctl_init(void)
271 271
272#ifdef CONFIG_SYSCTL 272#ifdef CONFIG_SYSCTL
273 if ( !fs_table_header ) 273 if ( !fs_table_header )
274 fs_table_header = register_sysctl_table(fs_table, 0); 274 fs_table_header = register_sysctl_table(fs_table);
275#endif 275#endif
276} 276}
277 277
diff --git a/fs/dquot.c b/fs/dquot.c
index 9eb166f91489..b16f991662c1 100644
--- a/fs/dquot.c
+++ b/fs/dquot.c
@@ -1841,7 +1841,7 @@ static int __init dquot_init(void)
1841 1841
1842 printk(KERN_NOTICE "VFS: Disk quotas %s\n", __DQUOT_VERSION__); 1842 printk(KERN_NOTICE "VFS: Disk quotas %s\n", __DQUOT_VERSION__);
1843 1843
1844 register_sysctl_table(sys_table, 0); 1844 register_sysctl_table(sys_table);
1845 1845
1846 dquot_cachep = kmem_cache_create("dquot", 1846 dquot_cachep = kmem_cache_create("dquot",
1847 sizeof(struct dquot), sizeof(unsigned long) * 4, 1847 sizeof(struct dquot), sizeof(unsigned long) * 4,
diff --git a/fs/lockd/svc.c b/fs/lockd/svc.c
index 80fcacc1acf9..50cb8daba4e5 100644
--- a/fs/lockd/svc.c
+++ b/fs/lockd/svc.c
@@ -512,7 +512,7 @@ module_param(nsm_use_hostnames, bool, 0644);
512 512
513static int __init init_nlm(void) 513static int __init init_nlm(void)
514{ 514{
515 nlm_sysctl_table = register_sysctl_table(nlm_sysctl_root, 0); 515 nlm_sysctl_table = register_sysctl_table(nlm_sysctl_root);
516 return nlm_sysctl_table ? 0 : -ENOMEM; 516 return nlm_sysctl_table ? 0 : -ENOMEM;
517} 517}
518 518
diff --git a/fs/nfs/sysctl.c b/fs/nfs/sysctl.c
index 3ea50ac64820..fcdcafbb3293 100644
--- a/fs/nfs/sysctl.c
+++ b/fs/nfs/sysctl.c
@@ -75,7 +75,7 @@ static ctl_table nfs_cb_sysctl_root[] = {
75 75
76int nfs_register_sysctl(void) 76int nfs_register_sysctl(void)
77{ 77{
78 nfs_callback_sysctl_table = register_sysctl_table(nfs_cb_sysctl_root, 0); 78 nfs_callback_sysctl_table = register_sysctl_table(nfs_cb_sysctl_root);
79 if (nfs_callback_sysctl_table == NULL) 79 if (nfs_callback_sysctl_table == NULL)
80 return -ENOMEM; 80 return -ENOMEM;
81 return 0; 81 return 0;
diff --git a/fs/ntfs/sysctl.c b/fs/ntfs/sysctl.c
index 4757f6b7a28c..1f1ee4c9eacc 100644
--- a/fs/ntfs/sysctl.c
+++ b/fs/ntfs/sysctl.c
@@ -70,7 +70,7 @@ int ntfs_sysctl(int add)
70{ 70{
71 if (add) { 71 if (add) {
72 BUG_ON(sysctls_root_table); 72 BUG_ON(sysctls_root_table);
73 sysctls_root_table = register_sysctl_table(sysctls_root, 0); 73 sysctls_root_table = register_sysctl_table(sysctls_root);
74 if (!sysctls_root_table) 74 if (!sysctls_root_table)
75 return -ENOMEM; 75 return -ENOMEM;
76#ifdef CONFIG_PROC_FS 76#ifdef CONFIG_PROC_FS
diff --git a/fs/ocfs2/cluster/nodemanager.c b/fs/ocfs2/cluster/nodemanager.c
index df763c7fd083..9f5ad0f01ce0 100644
--- a/fs/ocfs2/cluster/nodemanager.c
+++ b/fs/ocfs2/cluster/nodemanager.c
@@ -922,7 +922,7 @@ static int __init init_o2nm(void)
922 o2hb_init(); 922 o2hb_init();
923 o2net_init(); 923 o2net_init();
924 924
925 ocfs2_table_header = register_sysctl_table(ocfs2_root_table, 0); 925 ocfs2_table_header = register_sysctl_table(ocfs2_root_table);
926 if (!ocfs2_table_header) { 926 if (!ocfs2_table_header) {
927 printk(KERN_ERR "nodemanager: unable to register sysctl\n"); 927 printk(KERN_ERR "nodemanager: unable to register sysctl\n");
928 ret = -ENOMEM; /* or something. */ 928 ret = -ENOMEM; /* or something. */
diff --git a/fs/xfs/linux-2.6/xfs_sysctl.c b/fs/xfs/linux-2.6/xfs_sysctl.c
index 5c46c35a97a5..cd6eaa44aa2b 100644
--- a/fs/xfs/linux-2.6/xfs_sysctl.c
+++ b/fs/xfs/linux-2.6/xfs_sysctl.c
@@ -251,7 +251,7 @@ static ctl_table xfs_root_table[] = {
251void 251void
252xfs_sysctl_register(void) 252xfs_sysctl_register(void)
253{ 253{
254 xfs_table_header = register_sysctl_table(xfs_root_table, 0); 254 xfs_table_header = register_sysctl_table(xfs_root_table);
255} 255}
256 256
257void 257void
diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
index 51acdec88a61..396b8d984c5d 100644
--- a/include/linux/sysctl.h
+++ b/include/linux/sysctl.h
@@ -1035,8 +1035,8 @@ struct ctl_table_header
1035 struct completion *unregistering; 1035 struct completion *unregistering;
1036}; 1036};
1037 1037
1038struct ctl_table_header * register_sysctl_table(ctl_table * table, 1038struct ctl_table_header * register_sysctl_table(ctl_table * table);
1039 int insert_at_head); 1039
1040void unregister_sysctl_table(struct ctl_table_header * table); 1040void unregister_sysctl_table(struct ctl_table_header * table);
1041 1041
1042#else /* __KERNEL__ */ 1042#else /* __KERNEL__ */
diff --git a/ipc/ipc_sysctl.c b/ipc/ipc_sysctl.c
index 2c17d83b9093..a88934a1b769 100644
--- a/ipc/ipc_sysctl.c
+++ b/ipc/ipc_sysctl.c
@@ -176,7 +176,7 @@ static struct ctl_table ipc_root_table[] = {
176 176
177static int __init ipc_sysctl_init(void) 177static int __init ipc_sysctl_init(void)
178{ 178{
179 register_sysctl_table(ipc_root_table, 0); 179 register_sysctl_table(ipc_root_table);
180 return 0; 180 return 0;
181} 181}
182 182
diff --git a/ipc/mqueue.c b/ipc/mqueue.c
index 7a8ce610fda2..0b5ecbe5f045 100644
--- a/ipc/mqueue.c
+++ b/ipc/mqueue.c
@@ -1255,7 +1255,7 @@ static int __init init_mqueue_fs(void)
1255 return -ENOMEM; 1255 return -ENOMEM;
1256 1256
1257 /* ignore failues - they are not fatal */ 1257 /* ignore failues - they are not fatal */
1258 mq_sysctl_table = register_sysctl_table(mq_sysctl_root, 0); 1258 mq_sysctl_table = register_sysctl_table(mq_sysctl_root);
1259 1259
1260 error = register_filesystem(&mqueue_fs_type); 1260 error = register_filesystem(&mqueue_fs_type);
1261 if (error) 1261 if (error)
diff --git a/kernel/sysctl.c b/kernel/sysctl.c
index cb46d0156840..6ccb6cc19e28 100644
--- a/kernel/sysctl.c
+++ b/kernel/sysctl.c
@@ -1244,7 +1244,6 @@ int do_sysctl_strategy (ctl_table *table,
1244/** 1244/**
1245 * register_sysctl_table - register a sysctl hierarchy 1245 * register_sysctl_table - register a sysctl hierarchy
1246 * @table: the top-level table structure 1246 * @table: the top-level table structure
1247 * @insert_at_head: whether the entry should be inserted in front or at the end
1248 * 1247 *
1249 * Register a sysctl table hierarchy. @table should be a filled in ctl_table 1248 * Register a sysctl table hierarchy. @table should be a filled in ctl_table
1250 * array. An entry with a ctl_name of 0 terminates the table. 1249 * array. An entry with a ctl_name of 0 terminates the table.
@@ -1310,8 +1309,7 @@ int do_sysctl_strategy (ctl_table *table,
1310 * This routine returns %NULL on a failure to register, and a pointer 1309 * This routine returns %NULL on a failure to register, and a pointer
1311 * to the table header on success. 1310 * to the table header on success.
1312 */ 1311 */
1313struct ctl_table_header *register_sysctl_table(ctl_table * table, 1312struct ctl_table_header *register_sysctl_table(ctl_table * table)
1314 int insert_at_head)
1315{ 1313{
1316 struct ctl_table_header *tmp; 1314 struct ctl_table_header *tmp;
1317 tmp = kmalloc(sizeof(struct ctl_table_header), GFP_KERNEL); 1315 tmp = kmalloc(sizeof(struct ctl_table_header), GFP_KERNEL);
@@ -1322,10 +1320,7 @@ struct ctl_table_header *register_sysctl_table(ctl_table * table,
1322 tmp->used = 0; 1320 tmp->used = 0;
1323 tmp->unregistering = NULL; 1321 tmp->unregistering = NULL;
1324 spin_lock(&sysctl_lock); 1322 spin_lock(&sysctl_lock);
1325 if (insert_at_head) 1323 list_add_tail(&tmp->ctl_entry, &root_table_header.ctl_entry);
1326 list_add(&tmp->ctl_entry, &root_table_header.ctl_entry);
1327 else
1328 list_add_tail(&tmp->ctl_entry, &root_table_header.ctl_entry);
1329 spin_unlock(&sysctl_lock); 1324 spin_unlock(&sysctl_lock);
1330#ifdef CONFIG_PROC_SYSCTL 1325#ifdef CONFIG_PROC_SYSCTL
1331 register_proc_table(table, proc_sys_root, tmp); 1326 register_proc_table(table, proc_sys_root, tmp);
diff --git a/kernel/utsname_sysctl.c b/kernel/utsname_sysctl.c
index 324aa1341b5f..f22b9dbd2a9c 100644
--- a/kernel/utsname_sysctl.c
+++ b/kernel/utsname_sysctl.c
@@ -139,7 +139,7 @@ static struct ctl_table uts_root_table[] = {
139 139
140static int __init utsname_sysctl_init(void) 140static int __init utsname_sysctl_init(void)
141{ 141{
142 register_sysctl_table(uts_root_table, 0); 142 register_sysctl_table(uts_root_table);
143 return 0; 143 return 0;
144} 144}
145 145
diff --git a/net/appletalk/sysctl_net_atalk.c b/net/appletalk/sysctl_net_atalk.c
index 4f806b6dd227..7df1778e221a 100644
--- a/net/appletalk/sysctl_net_atalk.c
+++ b/net/appletalk/sysctl_net_atalk.c
@@ -73,7 +73,7 @@ static struct ctl_table_header *atalk_table_header;
73 73
74void atalk_register_sysctl(void) 74void atalk_register_sysctl(void)
75{ 75{
76 atalk_table_header = register_sysctl_table(atalk_root_table, 0); 76 atalk_table_header = register_sysctl_table(atalk_root_table);
77} 77}
78 78
79void atalk_unregister_sysctl(void) 79void atalk_unregister_sysctl(void)
diff --git a/net/ax25/sysctl_net_ax25.c b/net/ax25/sysctl_net_ax25.c
index afdba0466f14..443a83676638 100644
--- a/net/ax25/sysctl_net_ax25.c
+++ b/net/ax25/sysctl_net_ax25.c
@@ -245,7 +245,7 @@ void ax25_register_sysctl(void)
245 245
246 ax25_dir_table[0].child = ax25_table; 246 ax25_dir_table[0].child = ax25_table;
247 247
248 ax25_table_header = register_sysctl_table(ax25_root_table, 0); 248 ax25_table_header = register_sysctl_table(ax25_root_table);
249} 249}
250 250
251void ax25_unregister_sysctl(void) 251void ax25_unregister_sysctl(void)
diff --git a/net/bridge/br_netfilter.c b/net/bridge/br_netfilter.c
index a0744e653f09..7712d76f06ba 100644
--- a/net/bridge/br_netfilter.c
+++ b/net/bridge/br_netfilter.c
@@ -957,7 +957,7 @@ int __init br_netfilter_init(void)
957 if (ret < 0) 957 if (ret < 0)
958 return ret; 958 return ret;
959#ifdef CONFIG_SYSCTL 959#ifdef CONFIG_SYSCTL
960 brnf_sysctl_header = register_sysctl_table(brnf_net_table, 0); 960 brnf_sysctl_header = register_sysctl_table(brnf_net_table);
961 if (brnf_sysctl_header == NULL) { 961 if (brnf_sysctl_header == NULL) {
962 printk(KERN_WARNING 962 printk(KERN_WARNING
963 "br_netfilter: can't register to sysctl.\n"); 963 "br_netfilter: can't register to sysctl.\n");
diff --git a/net/core/neighbour.c b/net/core/neighbour.c
index a1525fb7a81e..3183142c6044 100644
--- a/net/core/neighbour.c
+++ b/net/core/neighbour.c
@@ -2707,7 +2707,7 @@ int neigh_sysctl_register(struct net_device *dev, struct neigh_parms *p,
2707 t->neigh_proto_dir[0].child = t->neigh_neigh_dir; 2707 t->neigh_proto_dir[0].child = t->neigh_neigh_dir;
2708 t->neigh_root_dir[0].child = t->neigh_proto_dir; 2708 t->neigh_root_dir[0].child = t->neigh_proto_dir;
2709 2709
2710 t->sysctl_header = register_sysctl_table(t->neigh_root_dir, 0); 2710 t->sysctl_header = register_sysctl_table(t->neigh_root_dir);
2711 if (!t->sysctl_header) { 2711 if (!t->sysctl_header) {
2712 err = -ENOBUFS; 2712 err = -ENOBUFS;
2713 goto free_procname; 2713 goto free_procname;
diff --git a/net/dccp/sysctl.c b/net/dccp/sysctl.c
index 33916318ed6d..1260aabac5e1 100644
--- a/net/dccp/sysctl.c
+++ b/net/dccp/sysctl.c
@@ -127,7 +127,7 @@ static struct ctl_table_header *dccp_table_header;
127 127
128int __init dccp_sysctl_init(void) 128int __init dccp_sysctl_init(void)
129{ 129{
130 dccp_table_header = register_sysctl_table(dccp_root_table, 0); 130 dccp_table_header = register_sysctl_table(dccp_root_table);
131 131
132 return dccp_table_header != NULL ? 0 : -ENOMEM; 132 return dccp_table_header != NULL ? 0 : -ENOMEM;
133} 133}
diff --git a/net/decnet/dn_dev.c b/net/decnet/dn_dev.c
index 2b2c7fe45a71..0977df42c205 100644
--- a/net/decnet/dn_dev.c
+++ b/net/decnet/dn_dev.c
@@ -282,7 +282,7 @@ static void dn_dev_sysctl_register(struct net_device *dev, struct dn_dev_parms *
282 t->dn_dev_root_dir[0].de = NULL; 282 t->dn_dev_root_dir[0].de = NULL;
283 t->dn_dev_vars[0].extra1 = (void *)dev; 283 t->dn_dev_vars[0].extra1 = (void *)dev;
284 284
285 t->sysctl_header = register_sysctl_table(t->dn_dev_root_dir, 0); 285 t->sysctl_header = register_sysctl_table(t->dn_dev_root_dir);
286 if (t->sysctl_header == NULL) 286 if (t->sysctl_header == NULL)
287 kfree(t); 287 kfree(t);
288 else 288 else
diff --git a/net/decnet/sysctl_net_decnet.c b/net/decnet/sysctl_net_decnet.c
index 70a8cf2775df..52e40d7eb22d 100644
--- a/net/decnet/sysctl_net_decnet.c
+++ b/net/decnet/sysctl_net_decnet.c
@@ -491,7 +491,7 @@ static ctl_table dn_root_table[] = {
491 491
492void dn_register_sysctl(void) 492void dn_register_sysctl(void)
493{ 493{
494 dn_table_header = register_sysctl_table(dn_root_table, 0); 494 dn_table_header = register_sysctl_table(dn_root_table);
495} 495}
496 496
497void dn_unregister_sysctl(void) 497void dn_unregister_sysctl(void)
diff --git a/net/ipv4/devinet.c b/net/ipv4/devinet.c
index 52db485a88f3..bf3eb2dc7662 100644
--- a/net/ipv4/devinet.c
+++ b/net/ipv4/devinet.c
@@ -1606,7 +1606,7 @@ static void devinet_sysctl_register(struct in_device *in_dev,
1606 t->devinet_root_dir[0].child = t->devinet_proto_dir; 1606 t->devinet_root_dir[0].child = t->devinet_proto_dir;
1607 t->devinet_root_dir[0].de = NULL; 1607 t->devinet_root_dir[0].de = NULL;
1608 1608
1609 t->sysctl_header = register_sysctl_table(t->devinet_root_dir, 0); 1609 t->sysctl_header = register_sysctl_table(t->devinet_root_dir);
1610 if (!t->sysctl_header) 1610 if (!t->sysctl_header)
1611 goto free_procname; 1611 goto free_procname;
1612 1612
@@ -1640,7 +1640,7 @@ void __init devinet_init(void)
1640 rtnetlink_links[PF_INET] = inet_rtnetlink_table; 1640 rtnetlink_links[PF_INET] = inet_rtnetlink_table;
1641#ifdef CONFIG_SYSCTL 1641#ifdef CONFIG_SYSCTL
1642 devinet_sysctl.sysctl_header = 1642 devinet_sysctl.sysctl_header =
1643 register_sysctl_table(devinet_sysctl.devinet_root_dir, 0); 1643 register_sysctl_table(devinet_sysctl.devinet_root_dir);
1644 devinet_sysctl_register(NULL, &ipv4_devconf_dflt); 1644 devinet_sysctl_register(NULL, &ipv4_devconf_dflt);
1645#endif 1645#endif
1646} 1646}
diff --git a/net/ipv4/ipvs/ip_vs_ctl.c b/net/ipv4/ipvs/ip_vs_ctl.c
index 8b08d9cdcbc8..b3050a6817e7 100644
--- a/net/ipv4/ipvs/ip_vs_ctl.c
+++ b/net/ipv4/ipvs/ip_vs_ctl.c
@@ -2359,7 +2359,7 @@ int ip_vs_control_init(void)
2359 proc_net_fops_create("ip_vs", 0, &ip_vs_info_fops); 2359 proc_net_fops_create("ip_vs", 0, &ip_vs_info_fops);
2360 proc_net_fops_create("ip_vs_stats",0, &ip_vs_stats_fops); 2360 proc_net_fops_create("ip_vs_stats",0, &ip_vs_stats_fops);
2361 2361
2362 sysctl_header = register_sysctl_table(vs_root_table, 0); 2362 sysctl_header = register_sysctl_table(vs_root_table);
2363 2363
2364 /* Initialize ip_vs_svc_table, ip_vs_svc_fwm_table, ip_vs_rtable */ 2364 /* Initialize ip_vs_svc_table, ip_vs_svc_fwm_table, ip_vs_rtable */
2365 for(idx = 0; idx < IP_VS_SVC_TAB_SIZE; idx++) { 2365 for(idx = 0; idx < IP_VS_SVC_TAB_SIZE; idx++) {
diff --git a/net/ipv4/ipvs/ip_vs_lblc.c b/net/ipv4/ipvs/ip_vs_lblc.c
index 76fd1fb91878..c801273cb881 100644
--- a/net/ipv4/ipvs/ip_vs_lblc.c
+++ b/net/ipv4/ipvs/ip_vs_lblc.c
@@ -583,7 +583,7 @@ static struct ip_vs_scheduler ip_vs_lblc_scheduler =
583static int __init ip_vs_lblc_init(void) 583static int __init ip_vs_lblc_init(void)
584{ 584{
585 INIT_LIST_HEAD(&ip_vs_lblc_scheduler.n_list); 585 INIT_LIST_HEAD(&ip_vs_lblc_scheduler.n_list);
586 sysctl_header = register_sysctl_table(lblc_root_table, 0); 586 sysctl_header = register_sysctl_table(lblc_root_table);
587 return register_ip_vs_scheduler(&ip_vs_lblc_scheduler); 587 return register_ip_vs_scheduler(&ip_vs_lblc_scheduler);
588} 588}
589 589
diff --git a/net/ipv4/ipvs/ip_vs_lblcr.c b/net/ipv4/ipvs/ip_vs_lblcr.c
index bf1e7f272b84..23f9b9e73c85 100644
--- a/net/ipv4/ipvs/ip_vs_lblcr.c
+++ b/net/ipv4/ipvs/ip_vs_lblcr.c
@@ -841,7 +841,7 @@ static struct ip_vs_scheduler ip_vs_lblcr_scheduler =
841static int __init ip_vs_lblcr_init(void) 841static int __init ip_vs_lblcr_init(void)
842{ 842{
843 INIT_LIST_HEAD(&ip_vs_lblcr_scheduler.n_list); 843 INIT_LIST_HEAD(&ip_vs_lblcr_scheduler.n_list);
844 sysctl_header = register_sysctl_table(lblcr_root_table, 0); 844 sysctl_header = register_sysctl_table(lblcr_root_table);
845#ifdef CONFIG_IP_VS_LBLCR_DEBUG 845#ifdef CONFIG_IP_VS_LBLCR_DEBUG
846 proc_net_create("ip_vs_lblcr", 0, ip_vs_lblcr_getinfo); 846 proc_net_create("ip_vs_lblcr", 0, ip_vs_lblcr_getinfo);
847#endif 847#endif
diff --git a/net/ipv4/netfilter/ip_conntrack_proto_sctp.c b/net/ipv4/netfilter/ip_conntrack_proto_sctp.c
index 2c02ff03bc4c..e6942992b2f6 100644
--- a/net/ipv4/netfilter/ip_conntrack_proto_sctp.c
+++ b/net/ipv4/netfilter/ip_conntrack_proto_sctp.c
@@ -622,7 +622,7 @@ static int __init ip_conntrack_proto_sctp_init(void)
622 } 622 }
623 623
624#ifdef CONFIG_SYSCTL 624#ifdef CONFIG_SYSCTL
625 ip_ct_sysctl_header = register_sysctl_table(ip_ct_net_table, 0); 625 ip_ct_sysctl_header = register_sysctl_table(ip_ct_net_table);
626 if (ip_ct_sysctl_header == NULL) { 626 if (ip_ct_sysctl_header == NULL) {
627 ret = -ENOMEM; 627 ret = -ENOMEM;
628 printk("ip_conntrack_proto_sctp: can't register to sysctl.\n"); 628 printk("ip_conntrack_proto_sctp: can't register to sysctl.\n");
diff --git a/net/ipv4/netfilter/ip_conntrack_standalone.c b/net/ipv4/netfilter/ip_conntrack_standalone.c
index c7c1ec61b0f5..56b2f7546d1e 100644
--- a/net/ipv4/netfilter/ip_conntrack_standalone.c
+++ b/net/ipv4/netfilter/ip_conntrack_standalone.c
@@ -848,7 +848,7 @@ static int __init ip_conntrack_standalone_init(void)
848 goto cleanup_proc_stat; 848 goto cleanup_proc_stat;
849 } 849 }
850#ifdef CONFIG_SYSCTL 850#ifdef CONFIG_SYSCTL
851 ip_ct_sysctl_header = register_sysctl_table(ip_ct_net_table, 0); 851 ip_ct_sysctl_header = register_sysctl_table(ip_ct_net_table);
852 if (ip_ct_sysctl_header == NULL) { 852 if (ip_ct_sysctl_header == NULL) {
853 printk("ip_conntrack: can't register to sysctl.\n"); 853 printk("ip_conntrack: can't register to sysctl.\n");
854 ret = -ENOMEM; 854 ret = -ENOMEM;
diff --git a/net/ipv4/netfilter/ip_queue.c b/net/ipv4/netfilter/ip_queue.c
index 68bf19f3b01c..a14798a850d7 100644
--- a/net/ipv4/netfilter/ip_queue.c
+++ b/net/ipv4/netfilter/ip_queue.c
@@ -693,7 +693,7 @@ static int __init ip_queue_init(void)
693 } 693 }
694 694
695 register_netdevice_notifier(&ipq_dev_notifier); 695 register_netdevice_notifier(&ipq_dev_notifier);
696 ipq_sysctl_header = register_sysctl_table(ipq_root_table, 0); 696 ipq_sysctl_header = register_sysctl_table(ipq_root_table);
697 697
698 status = nf_register_queue_handler(PF_INET, &nfqh); 698 status = nf_register_queue_handler(PF_INET, &nfqh);
699 if (status < 0) { 699 if (status < 0) {
diff --git a/net/ipv6/addrconf.c b/net/ipv6/addrconf.c
index 4702954bf0ac..34d80b4aaa04 100644
--- a/net/ipv6/addrconf.c
+++ b/net/ipv6/addrconf.c
@@ -4029,7 +4029,7 @@ static void addrconf_sysctl_register(struct inet6_dev *idev, struct ipv6_devconf
4029 t->addrconf_root_dir[0].child = t->addrconf_proto_dir; 4029 t->addrconf_root_dir[0].child = t->addrconf_proto_dir;
4030 t->addrconf_root_dir[0].de = NULL; 4030 t->addrconf_root_dir[0].de = NULL;
4031 4031
4032 t->sysctl_header = register_sysctl_table(t->addrconf_root_dir, 0); 4032 t->sysctl_header = register_sysctl_table(t->addrconf_root_dir);
4033 if (t->sysctl_header == NULL) 4033 if (t->sysctl_header == NULL)
4034 goto free_procname; 4034 goto free_procname;
4035 else 4035 else
@@ -4114,7 +4114,7 @@ int __init addrconf_init(void)
4114 rtnetlink_links[PF_INET6] = inet6_rtnetlink_table; 4114 rtnetlink_links[PF_INET6] = inet6_rtnetlink_table;
4115#ifdef CONFIG_SYSCTL 4115#ifdef CONFIG_SYSCTL
4116 addrconf_sysctl.sysctl_header = 4116 addrconf_sysctl.sysctl_header =
4117 register_sysctl_table(addrconf_sysctl.addrconf_root_dir, 0); 4117 register_sysctl_table(addrconf_sysctl.addrconf_root_dir);
4118 addrconf_sysctl_register(NULL, &ipv6_devconf_dflt); 4118 addrconf_sysctl_register(NULL, &ipv6_devconf_dflt);
4119#endif 4119#endif
4120 4120
diff --git a/net/ipv6/netfilter/ip6_queue.c b/net/ipv6/netfilter/ip6_queue.c
index 58847d3b61e5..fdb30a5916e5 100644
--- a/net/ipv6/netfilter/ip6_queue.c
+++ b/net/ipv6/netfilter/ip6_queue.c
@@ -683,7 +683,7 @@ static int __init ip6_queue_init(void)
683 } 683 }
684 684
685 register_netdevice_notifier(&ipq_dev_notifier); 685 register_netdevice_notifier(&ipq_dev_notifier);
686 ipq_sysctl_header = register_sysctl_table(ipq_root_table, 0); 686 ipq_sysctl_header = register_sysctl_table(ipq_root_table);
687 687
688 status = nf_register_queue_handler(PF_INET6, &nfqh); 688 status = nf_register_queue_handler(PF_INET6, &nfqh);
689 if (status < 0) { 689 if (status < 0) {
diff --git a/net/ipv6/sysctl_net_ipv6.c b/net/ipv6/sysctl_net_ipv6.c
index 25e8e7783fee..3fb44277207b 100644
--- a/net/ipv6/sysctl_net_ipv6.c
+++ b/net/ipv6/sysctl_net_ipv6.c
@@ -107,7 +107,7 @@ static ctl_table ipv6_root_table[] = {
107 107
108void ipv6_sysctl_register(void) 108void ipv6_sysctl_register(void)
109{ 109{
110 ipv6_sysctl_header = register_sysctl_table(ipv6_root_table, 0); 110 ipv6_sysctl_header = register_sysctl_table(ipv6_root_table);
111} 111}
112 112
113void ipv6_sysctl_unregister(void) 113void ipv6_sysctl_unregister(void)
diff --git a/net/ipx/sysctl_net_ipx.c b/net/ipx/sysctl_net_ipx.c
index 0397b0985b79..0cf526450536 100644
--- a/net/ipx/sysctl_net_ipx.c
+++ b/net/ipx/sysctl_net_ipx.c
@@ -52,7 +52,7 @@ static struct ctl_table_header *ipx_table_header;
52 52
53void ipx_register_sysctl(void) 53void ipx_register_sysctl(void)
54{ 54{
55 ipx_table_header = register_sysctl_table(ipx_root_table, 0); 55 ipx_table_header = register_sysctl_table(ipx_root_table);
56} 56}
57 57
58void ipx_unregister_sysctl(void) 58void ipx_unregister_sysctl(void)
diff --git a/net/irda/irsysctl.c b/net/irda/irsysctl.c
index bb53ba0be585..2e968e7d8fea 100644
--- a/net/irda/irsysctl.c
+++ b/net/irda/irsysctl.c
@@ -274,7 +274,7 @@ static struct ctl_table_header *irda_table_header;
274 */ 274 */
275int __init irda_sysctl_register(void) 275int __init irda_sysctl_register(void)
276{ 276{
277 irda_table_header = register_sysctl_table(irda_root_table, 0); 277 irda_table_header = register_sysctl_table(irda_root_table);
278 if (!irda_table_header) 278 if (!irda_table_header)
279 return -ENOMEM; 279 return -ENOMEM;
280 280
diff --git a/net/llc/sysctl_net_llc.c b/net/llc/sysctl_net_llc.c
index bcec7e1eda95..46992d036017 100644
--- a/net/llc/sysctl_net_llc.c
+++ b/net/llc/sysctl_net_llc.c
@@ -116,7 +116,7 @@ static struct ctl_table_header *llc_table_header;
116 116
117int __init llc_sysctl_init(void) 117int __init llc_sysctl_init(void)
118{ 118{
119 llc_table_header = register_sysctl_table(llc_root_table, 0); 119 llc_table_header = register_sysctl_table(llc_root_table);
120 120
121 return llc_table_header ? 0 : -ENOMEM; 121 return llc_table_header ? 0 : -ENOMEM;
122} 122}
diff --git a/net/netfilter/nf_conntrack_standalone.c b/net/netfilter/nf_conntrack_standalone.c
index a0bba481d70d..b8586360e519 100644
--- a/net/netfilter/nf_conntrack_standalone.c
+++ b/net/netfilter/nf_conntrack_standalone.c
@@ -445,7 +445,7 @@ static int __init nf_conntrack_standalone_init(void)
445 proc_stat->owner = THIS_MODULE; 445 proc_stat->owner = THIS_MODULE;
446#endif 446#endif
447#ifdef CONFIG_SYSCTL 447#ifdef CONFIG_SYSCTL
448 nf_ct_sysctl_header = register_sysctl_table(nf_ct_net_table, 0); 448 nf_ct_sysctl_header = register_sysctl_table(nf_ct_net_table);
449 if (nf_ct_sysctl_header == NULL) { 449 if (nf_ct_sysctl_header == NULL) {
450 printk("nf_conntrack: can't register to sysctl.\n"); 450 printk("nf_conntrack: can't register to sysctl.\n");
451 ret = -ENOMEM; 451 ret = -ENOMEM;
diff --git a/net/netfilter/nf_sysctl.c b/net/netfilter/nf_sysctl.c
index 06ddddb2911f..ee34589e48a4 100644
--- a/net/netfilter/nf_sysctl.c
+++ b/net/netfilter/nf_sysctl.c
@@ -56,7 +56,7 @@ nf_register_sysctl_table(struct ctl_table *path, struct ctl_table *table)
56 path = path_dup(path, table); 56 path = path_dup(path, table);
57 if (path == NULL) 57 if (path == NULL)
58 return NULL; 58 return NULL;
59 header = register_sysctl_table(path, 0); 59 header = register_sysctl_table(path);
60 if (header == NULL) 60 if (header == NULL)
61 path_free(path, table); 61 path_free(path, table);
62 return header; 62 return header;
diff --git a/net/netrom/sysctl_net_netrom.c b/net/netrom/sysctl_net_netrom.c
index 6ca96a56663c..2ea68da01fb8 100644
--- a/net/netrom/sysctl_net_netrom.c
+++ b/net/netrom/sysctl_net_netrom.c
@@ -192,7 +192,7 @@ static ctl_table nr_root_table[] = {
192 192
193void __init nr_register_sysctl(void) 193void __init nr_register_sysctl(void)
194{ 194{
195 nr_table_header = register_sysctl_table(nr_root_table, 0); 195 nr_table_header = register_sysctl_table(nr_root_table);
196} 196}
197 197
198void nr_unregister_sysctl(void) 198void nr_unregister_sysctl(void)
diff --git a/net/rose/sysctl_net_rose.c b/net/rose/sysctl_net_rose.c
index b9210461a8b4..455b0555a669 100644
--- a/net/rose/sysctl_net_rose.c
+++ b/net/rose/sysctl_net_rose.c
@@ -160,7 +160,7 @@ static ctl_table rose_root_table[] = {
160 160
161void __init rose_register_sysctl(void) 161void __init rose_register_sysctl(void)
162{ 162{
163 rose_table_header = register_sysctl_table(rose_root_table, 0); 163 rose_table_header = register_sysctl_table(rose_root_table);
164} 164}
165 165
166void rose_unregister_sysctl(void) 166void rose_unregister_sysctl(void)
diff --git a/net/rxrpc/sysctl.c b/net/rxrpc/sysctl.c
index 0755ae028e43..884290754af7 100644
--- a/net/rxrpc/sysctl.c
+++ b/net/rxrpc/sysctl.c
@@ -97,7 +97,7 @@ static ctl_table rxrpc_dir_sysctl_table[] = {
97int rxrpc_sysctl_init(void) 97int rxrpc_sysctl_init(void)
98{ 98{
99#ifdef CONFIG_SYSCTL 99#ifdef CONFIG_SYSCTL
100 rxrpc_sysctl = register_sysctl_table(rxrpc_dir_sysctl_table, 0); 100 rxrpc_sysctl = register_sysctl_table(rxrpc_dir_sysctl_table);
101 if (!rxrpc_sysctl) 101 if (!rxrpc_sysctl)
102 return -ENOMEM; 102 return -ENOMEM;
103#endif /* CONFIG_SYSCTL */ 103#endif /* CONFIG_SYSCTL */
diff --git a/net/sctp/sysctl.c b/net/sctp/sysctl.c
index 633cd178654b..e2c679baf912 100644
--- a/net/sctp/sysctl.c
+++ b/net/sctp/sysctl.c
@@ -254,7 +254,7 @@ static struct ctl_table_header * sctp_sysctl_header;
254/* Sysctl registration. */ 254/* Sysctl registration. */
255void sctp_sysctl_register(void) 255void sctp_sysctl_register(void)
256{ 256{
257 sctp_sysctl_header = register_sysctl_table(sctp_root_table, 0); 257 sctp_sysctl_header = register_sysctl_table(sctp_root_table);
258} 258}
259 259
260/* Sysctl deregistration. */ 260/* Sysctl deregistration. */
diff --git a/net/sunrpc/sysctl.c b/net/sunrpc/sysctl.c
index 1169798bf271..738db32a287d 100644
--- a/net/sunrpc/sysctl.c
+++ b/net/sunrpc/sysctl.c
@@ -36,7 +36,7 @@ void
36rpc_register_sysctl(void) 36rpc_register_sysctl(void)
37{ 37{
38 if (!sunrpc_table_header) 38 if (!sunrpc_table_header)
39 sunrpc_table_header = register_sysctl_table(sunrpc_table, 0); 39 sunrpc_table_header = register_sysctl_table(sunrpc_table);
40} 40}
41 41
42void 42void
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c
index 5a9f6d840e82..a5a32029e728 100644
--- a/net/sunrpc/xprtsock.c
+++ b/net/sunrpc/xprtsock.c
@@ -1636,7 +1636,7 @@ int init_socket_xprt(void)
1636{ 1636{
1637#ifdef RPC_DEBUG 1637#ifdef RPC_DEBUG
1638 if (!sunrpc_table_header) 1638 if (!sunrpc_table_header)
1639 sunrpc_table_header = register_sysctl_table(sunrpc_table, 0); 1639 sunrpc_table_header = register_sysctl_table(sunrpc_table);
1640#endif 1640#endif
1641 1641
1642 return 0; 1642 return 0;
diff --git a/net/unix/sysctl_net_unix.c b/net/unix/sysctl_net_unix.c
index 690ffa5d5bfb..eb0bd57ebada 100644
--- a/net/unix/sysctl_net_unix.c
+++ b/net/unix/sysctl_net_unix.c
@@ -50,7 +50,7 @@ static struct ctl_table_header * unix_sysctl_header;
50 50
51void unix_sysctl_register(void) 51void unix_sysctl_register(void)
52{ 52{
53 unix_sysctl_header = register_sysctl_table(unix_root_table, 0); 53 unix_sysctl_header = register_sysctl_table(unix_root_table);
54} 54}
55 55
56void unix_sysctl_unregister(void) 56void unix_sysctl_unregister(void)
diff --git a/net/x25/sysctl_net_x25.c b/net/x25/sysctl_net_x25.c
index 68300d4c19cc..a59b77f18234 100644
--- a/net/x25/sysctl_net_x25.c
+++ b/net/x25/sysctl_net_x25.c
@@ -106,7 +106,7 @@ static struct ctl_table x25_root_table[] = {
106 106
107void __init x25_register_sysctl(void) 107void __init x25_register_sysctl(void)
108{ 108{
109 x25_table_header = register_sysctl_table(x25_root_table, 0); 109 x25_table_header = register_sysctl_table(x25_root_table);
110} 110}
111 111
112void x25_unregister_sysctl(void) 112void x25_unregister_sysctl(void)