]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
Linux: deal with ctl_name removal
authorMarc Dionne <marc.c.dionne@gmail.com>
Thu, 10 Dec 2009 00:06:18 +0000 (19:06 -0500)
committerDerrick Brashear <shadow|account-1000005@unknown>
Sun, 20 Dec 2009 19:35:10 +0000 (11:35 -0800)
The binary sysctl interface will be removed in kernel 2.6.33 and
ctl_name will be dropped from the ctl_table structure.
Make the code that uses ctl_name conditional on a configure test.

(cherry picked from commit 886801b069fab1e6fc94003221dcfe18e05ac376)

Change-Id: Iba0f107f299c6515e4e560d7596e6187bd68e399
Reviewed-on: http://gerrit.openafs.org/904
Tested-by: Marc Dionne <marc.c.dionne@gmail.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Reviewed-on: http://gerrit.openafs.org/1013
Tested-by: Derrick Brashear <shadow@dementia.org>
acinclude.m4
src/afs/LINUX/osi_sysctl.c
src/cf/linux-test4.m4

index 9b5d8b0bec25d71e1df9b50ae69aaeb61655267d..b76f8d6f73b6698a2a6b0b12c265db91dcbb719f 100644 (file)
@@ -815,6 +815,7 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
                 LINUX_INIT_WORK_HAS_DATA
                 LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
                 LINUX_SYSCTL_TABLE_CHECKING
+                LINUX_STRUCT_CTL_TABLE_HAS_CTL_NAME
                 LINUX_HAVE_IGET
                 LINUX_HAVE_I_SIZE_READ
                 LINUX_FS_STRUCT_NAMEIDATA_HAS_PATH
index eee5c17ab082c13a19183583feef53290b88ee78..391deaa4789eea4714e03f1f69318d59c93b94f0 100644 (file)
@@ -28,10 +28,12 @@ static struct ctl_table_header *afs_sysctl = NULL;
 
 static ctl_table afs_sysctl_table[] = {
     {
+#if defined(STRUCT_CTL_TABLE_HAS_CTL_NAME)
 #if defined(SYSCTL_TABLE_CHECKING)
        .ctl_name       = CTL_UNNUMBERED, 
 #else
        .ctl_name       = 1, 
+#endif
 #endif
        .procname       = "hm_retry_RO",
        .data           = &hm_retry_RO, 
@@ -40,10 +42,12 @@ static ctl_table afs_sysctl_table[] = {
        .proc_handler   = &proc_dointvec
     },
     {
+#if defined(STRUCT_CTL_TABLE_HAS_CTL_NAME)
 #if defined(SYSCTL_TABLE_CHECKING)
        .ctl_name       = CTL_UNNUMBERED, 
 #else
         .ctl_name      = 2, 
+#endif
 #endif
         .procname      = "hm_retry_RW",
         .data          = &hm_retry_RW,
@@ -52,10 +56,12 @@ static ctl_table afs_sysctl_table[] = {
        .proc_handler   = &proc_dointvec
     },
     {
+#if defined(STRUCT_CTL_TABLE_HAS_CTL_NAME)
 #if defined(SYSCTL_TABLE_CHECKING)
        .ctl_name       = CTL_UNNUMBERED, 
 #else
        .ctl_name       = 3, 
+#endif
 #endif
        .procname       = "hm_retry_int",
        .data           = &hm_retry_int, 
@@ -64,10 +70,12 @@ static ctl_table afs_sysctl_table[] = {
        .proc_handler   = &proc_dointvec
     },
     {
+#if defined(STRUCT_CTL_TABLE_HAS_CTL_NAME)
 #if defined(SYSCTL_TABLE_CHECKING)
        .ctl_name       = CTL_UNNUMBERED, 
 #else
        .ctl_name       = 4, 
+#endif
 #endif
        .procname       = "GCPAGs",
        .data           = &afs_gcpags, 
@@ -76,10 +84,12 @@ static ctl_table afs_sysctl_table[] = {
        .proc_handler   = &proc_dointvec
     },
     {
+#if defined(STRUCT_CTL_TABLE_HAS_CTL_NAME)
 #if defined(SYSCTL_TABLE_CHECKING)
        .ctl_name       = CTL_UNNUMBERED, 
 #else
        .ctl_name       = 5, 
+#endif
 #endif
        .procname       = "rx_deadtime",
        .data           = &afs_rx_deadtime, 
@@ -88,10 +98,12 @@ static ctl_table afs_sysctl_table[] = {
        .proc_handler   = &proc_dointvec
     },
     {
+#if defined(STRUCT_CTL_TABLE_HAS_CTL_NAME)
 #if defined(SYSCTL_TABLE_CHECKING)
        .ctl_name       = CTL_UNNUMBERED, 
 #else
        .ctl_name       = 6, 
+#endif
 #endif
        .procname       = "bkVolPref",
        .data           = &afs_bkvolpref, 
@@ -104,10 +116,12 @@ static ctl_table afs_sysctl_table[] = {
 
 static ctl_table fs_sysctl_table[] = {
     {
+#if defined(STRUCT_CTL_TABLE_HAS_CTL_NAME)
 #if defined(SYSCTL_TABLE_CHECKING)
        .ctl_name       = CTL_UNNUMBERED, 
 #else
        .ctl_name       = 1, 
+#endif
 #endif
        .procname       = "afs", 
        .mode           = 0555, 
index b2ec0c85b1c6ac4a0f79d9eca9a1d6586f1baec6..4ac688fa041dc430a0ee5842209f8fd49f8b770b 100644 (file)
@@ -1215,3 +1215,17 @@ AC_DEFUN([LINUX_POSIX_TEST_LOCK_CONFLICT_ARG], [
   if test "x$ac_cv_linux_posix_test_lock_conflict_arg" = "xyes"; then
     AC_DEFINE([POSIX_TEST_LOCK_CONFLICT_ARG], 1, [define if posix_test_lock takes a conflict argument])
   fi])
+
+AC_DEFUN([LINUX_STRUCT_CTL_TABLE_HAS_CTL_NAME], [
+  AC_MSG_CHECKING([if struct ctl_table has ctl_name])
+  AC_CACHE_VAL([ac_cv_linux_struct_ctl_table_has_ctl_name], [
+    AC_TRY_KBUILD(
+[#include <linux/sysctl.h>],
+[struct ctl_table _t;
+_t.ctl_name = 0;],
+      ac_cv_linux_struct_ctl_table_has_ctl_name=yes,
+      ac_cv_linux_struct_ctl_table_has_ctl_name=no)])
+  AC_MSG_RESULT($ac_cv_linux_struct_ctl_table_has_ctl_name)
+  if test "x$ac_cv_linux_struct_ctl_table_has_ctl_name" = "xyes"; then
+    AC_DEFINE([STRUCT_CTL_TABLE_HAS_CTL_NAME], 1, [define if struct ctl_table has a ctl_name member])
+  fi])