Linux: Register number sysctls only when desperate
authorSimon Wilkinson <sxw@inf.ed.ac.uk>
Wed, 28 Apr 2010 00:13:30 +0000 (01:13 +0100)
committerDerrick Brashear <shadow@dementia.org>
Wed, 28 Apr 2010 04:43:15 +0000 (21:43 -0700)
commitd02f9a0b0b95ac6ada6be0b2b9a1e164f75a425d
tree6ba9e2754aaf633cb86f6802487bdf8e76737f68
parentb1c6d709cba64cda7bce0f5f91ab30a1e7bb8983
Linux: Register number sysctls only when desperate

The AFS sysctl interface was trying to register numeric system
calls whenever the kernel would let it. This is anti-social, as
we've never had sysctl numbers allocated to us. In kernels newer
than 2.6.24, this misbehaviour is detected and punished. In recent
kernels, the binary interface has gone away entirely.

Since 2.6.19, the kernel has supported allocated unnumbered system
calls. These are only available via /proc/sys (and not the using
the legacy, binary, API), but they're really the only interface
available to us.

Change the sysctl registration code to use unnumbered calls whenever
they are available. Unnumbered calls aren't available in 2.4.x, so
completely remove that code there.

Change-Id: I882117ca2250894f479292026fed84ff0b5e7972
Reviewed-on: http://gerrit.openafs.org/1871
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
acinclude.m4
src/afs/LINUX/osi_sysctl.c
src/afs/LINUX24/osi_sysctl.c
src/cf/linux-test4.m4