[PATCH] sysctl: allow a zero ctl_name in the middle of a sysctl table
authorEric W. Biederman <ebiederm@xmission.com>
Mon, 6 Nov 2006 07:52:12 +0000 (23:52 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Mon, 6 Nov 2006 09:46:23 +0000 (01:46 -0800)
commitd99f160ac53e51090f015a8f0617cea25f81a191
treea78f1169a937d211e8a02703e1e4ed9cc0edbef8
parent0e009be8a0c2309f3696df70f72ef0075aa34c9c
[PATCH] sysctl: allow a zero ctl_name in the middle of a sysctl table

Since it is becoming clear that there are just enough users of the binary
sysctl interface that completely removing the binary interface from the kernel
will not be an option for foreseeable future, we need to find a way to address
the sysctl maintenance issues.

The basic problem is that sysctl requires one central authority to allocate
sysctl numbers, or else conflicts and ABI breakage occur.  The proc interface
to sysctl does not have that problem, as names are not densely allocated.

By not terminating a sysctl table until I have neither a ctl_name nor a
procname, it becomes simple to add sysctl entries that don't show up in the
binary sysctl interface.  Which allows people to avoid allocating a binary
sysctl value when not needed.

I have audited the kernel code and in my reading I have not found a single
sysctl table that wasn't terminated by a completely zero filled entry.  So
this change in behavior should not affect anything.

I think this mechanism eases the pain enough that combined with a little
disciple we can solve the reoccurring sysctl ABI breakage.

Signed-off-by: Eric W. Biederman <ebiederm@xmission.com>
Acked-by: Alan Cox <alan@redhat.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
include/linux/sysctl.h
kernel/sysctl.c