DEVEL15-linux-2621-20070222
authorMarc Dionne <marc.dionne@technoconseil.com>
Thu, 22 Feb 2007 21:47:23 +0000 (21:47 +0000)
committerDerrick Brashear <shadow@dementia.org>
Thu, 22 Feb 2007 21:47:23 +0000 (21:47 +0000)
FIXES 54645

configure support for new sysctl api

(cherry picked from commit f1a6107e0814d1e3e1d171834c97489479b5e6df)

acinclude.m4
src/afs/LINUX/osi_sysctl.c
src/cf/linux-test4.m4

index f0a814d..9d54244 100644 (file)
@@ -654,6 +654,7 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
                 LINUX_DO_SYNC_READ
                 LINUX_GENERIC_FILE_AIO_READ
                 LINUX_INIT_WORK_HAS_DATA
+                LINUX_REGISTER_SYSCTL_TABLE_NOFLAG
                  LINUX_EXPORTS_SYS_CHDIR
                  LINUX_EXPORTS_SYS_CLOSE
                  LINUX_EXPORTS_SYS_OPEN
@@ -856,6 +857,9 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
                 if test "x$ac_cv_linux_fs_struct_fop_has_flock" = "xyes" ; then
                  AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_FLOCK, 1, [define if your struct file_operations has flock])
                 fi
+                if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
+                 AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
+                fi
                 if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
                  AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if tasklist_lock exported])
                 fi
index 3870563..9abaeeb 100644 (file)
@@ -102,7 +102,11 @@ static ctl_table fs_sysctl_table[] = {
 int
 osi_sysctl_init()
 {
+#if defined(REGISTER_SYSCTL_TABLE_NOFLAG)
+    afs_sysctl = register_sysctl_table(fs_sysctl_table);
+#else
     afs_sysctl = register_sysctl_table(fs_sysctl_table, 0);
+#endif
     if (!afs_sysctl)
        return -1;
 
index dfa801c..438d7a2 100644 (file)
@@ -806,3 +806,15 @@ _fop.flock(NULL, 0, NULL);],
       ac_cv_linux_fs_struct_fop_has_flock=yes,
       ac_cv_linux_fs_struct_fop_has_flock=no)])
   AC_MSG_RESULT($ac_cv_linux_fs_struct_fop_has_flock)])
+
+AC_DEFUN([LINUX_REGISTER_SYSCTL_TABLE_NOFLAG], [
+  AC_MSG_CHECKING([whether register_sysctl_table has an insert_at_head flag argument])
+  AC_CACHE_VAL([ac_cv_linux_register_sysctl_table_noflag], [
+    AC_TRY_KBUILD(
+[#include <linux/sysctl.h>],
+[ctl_table *t;
+register_sysctl_table (t);],
+      ac_cv_linux_register_sysctl_table_noflag=yes,
+      ac_cv_linux_register_sysctl_table_noflag=no)])
+  AC_MSG_RESULT($ac_cv_linux_register_sysctl_table_noflag)])
+