--- x/patches/linux-2.6.16.33/series
+++ x/patches/linux-2.6.16.33/series
@@ -32,3 +32,4 @@ git-dbaab49f92ff6ae6255762a948375e4036cb
 x86-elfnote-as-preprocessor-macro.patch
 vsnprintf.patch
 kasprintf.patch
+sysctl-unnumbered.patch
--- /dev/null
+++ x/patches/linux-2.6.16.33/sysctl-unnumbered.patch
@@ -0,0 +1,89 @@
+commit 7cc13edc139108bb527b692f0548dce6bc648572
+tree c16b96e5f461068571a1b82890a2291522022e1d
+parent d99f160ac53e51090f015a8f0617cea25f81a191
+author Eric W. Biederman <ebiederm@xmission.com> 1162799533 -0800
+committer Linus Torvalds <torvalds@g5.osdl.org> 1162806383 -0800
+
+[PATCH] sysctl: implement CTL_UNNUMBERED
+
+This patch takes the CTL_UNNUMBERD concept from NFS and makes it available to
+all new sysctl users.
+
+At the same time the sysctl binary interface maintenance documentation is
+updated to mention and to describe what is needed to successfully maintain the
+sysctl binary interface.
+
+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>
+
+ fs/lockd/svc.c         |    3 ---
+ fs/nfs/sysctl.c        |    5 -----
+ include/linux/sysctl.h |   14 +++++++++++---
+ 3 files changed, 11 insertions(+), 11 deletions(-)
+
+7cc13edc139108bb527b692f0548dce6bc648572
+diff --git a/fs/lockd/svc.c b/fs/lockd/svc.c
+index 6341392..8ca1808 100644
+--- a/fs/lockd/svc.c
++++ b/fs/lockd/svc.c
+@@ -353,9 +353,6 @@ EXPORT_SYMBOL(lockd_down);
+  * Sysctl parameters (same as module parameters, different interface).
+  */
+ 
+-/* Something that isn't CTL_ANY, CTL_NONE or a value that may clash. */
+-#define CTL_UNNUMBERED		-2
+-
+ static ctl_table nlm_sysctls[] = {
+ 	{
+ 		.ctl_name	= CTL_UNNUMBERED,
+diff --git a/fs/nfs/sysctl.c b/fs/nfs/sysctl.c
+index 2fe3403..3ea50ac 100644
+--- a/fs/nfs/sysctl.c
++++ b/fs/nfs/sysctl.c
+@@ -18,11 +18,6 @@
+ static const int nfs_set_port_min = 0;
+ static const int nfs_set_port_max = 65535;
+ static struct ctl_table_header *nfs_callback_sysctl_table;
+-/*
+- * Something that isn't CTL_ANY, CTL_NONE or a value that may clash.
+- * Use the same values as fs/lockd/svc.c
+- */
+-#define CTL_UNNUMBERED -2
+ 
+ static ctl_table nfs_cb_sysctls[] = {
+ #ifdef CONFIG_NFS_V4
+diff --git a/include/linux/sysctl.h b/include/linux/sysctl.h
+index c184732..d98562f 100644
+--- a/include/linux/sysctl.h
++++ b/include/linux/sysctl.h
+@@ -6,10 +6,17 @@
+  ****************************************************************
+  ****************************************************************
+  **
++ **  WARNING:
+  **  The values in this file are exported to user space via 
+- **  the sysctl() binary interface.  However this interface
+- **  is unstable and deprecated and will be removed in the future. 
+- **  For a stable interface use /proc/sys.
++ **  the sysctl() binary interface.  Do *NOT* change the
++ **  numbering of any existing values here, and do not change
++ **  any numbers within any one set of values.  If you have to
++ **  have to redefine an existing interface, use a new number for it.
++ **  The kernel will then return -ENOTDIR to any application using
++ **  the old binary interface.
++ **
++ **  For new interfaces unless you really need a binary number
++ **  please use CTL_UNNUMBERED.
+  **
+  ****************************************************************
+  ****************************************************************
+@@ -48,6 +55,7 @@ struct __sysctl_args {
+ #ifdef __KERNEL__
+ #define CTL_ANY		-1	/* Matches any name */
+ #define CTL_NONE	0
++#define CTL_UNNUMBERED	CTL_NONE	/* sysctl without a binary number */
+ #endif
+ 
+ enum
