]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
Add configure test for pagevec_lru_add_file
authorSimon Wilkinson <sxw@inf.ed.ac.uk>
Wed, 30 Sep 2009 09:44:51 +0000 (11:44 +0200)
committerDerrick Brashear <shadow|account-1000005@unknown>
Wed, 30 Sep 2009 17:38:23 +0000 (10:38 -0700)
pagevec_lru_add_file isn't available on all Linux kernels.
Fallback to using pagevec_lru_add where necessary.

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

index 6d60abcf3ab8bdeded3549ed2bafbe4e9a59091e..03a98547a24f3c2018f597274d29ef13eb01002a 100644 (file)
@@ -890,6 +890,7 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
                  LINUX_HAVE_BDI_INIT
                  LINUX_KMEM_CACHE_INIT
                  LINUX_HAVE_GRAB_CACHE_PAGE_WRITE_BEGIN
+                LINUX_HAVE_PAGEVEC_LRU_ADD_FILE
                  LINUX_STRUCT_TASK_HAS_CRED
                 LINUX_STRUCT_PROC_DIR_ENTRY_HAS_OWNER
                 LINUX_HAVE_KMEM_CACHE_T
index 5e092a82e6f25090456a979d2b1f0f67de11b3db..d58e9dd6080fa58291ae3621b66fef45e5f81076 100644 (file)
@@ -50,7 +50,7 @@
 #define pageoff(pp) pp->offset
 #endif
 
-#ifndef __pagevec_lru_add_file
+#ifndef HAVE_PAGEVEC_LRU_ADD_FILE
 #define __pagevec_lru_add_file __pagevec_lru_add
 #endif
 
index afc2442457475a877c60556d9e78075e2ef8cdc6..306587d4263079ee0385d6b9651f6d9cbd830a94 100644 (file)
@@ -1185,6 +1185,19 @@ AC_DEFUN([LINUX_HAVE_GRAB_CACHE_PAGE_WRITE_BEGIN], [
     AC_DEFINE([HAVE_GRAB_CACHE_PAGE_WRITE_BEGIN], 1, [define if your kernel has grab_cache_page_write_begin()])
   fi])
 
+AC_DEFUN([LINUX_HAVE_PAGEVEC_LRU_ADD_FILE], [
+  AC_MSG_CHECKING([for linux __pagevec_lru_add_file()])
+  AC_CACHE_VAL([ac_cv_linux_pagevec_add_file], [
+    AC_TRY_KBUILD(
+[#include <linux/pagevec.h>],
+[__pagevec_lru_add_file(NULL);],
+      ac_cv_linux_pagevec_add_file=yes,
+      ac_cv_linux_pagevec_add_file=no)])
+  AC_MSG_RESULT($ac_cv_linux_pagevec_add_file)
+  if test "x$ac_cv_linux_pagevec_add_file" = "xyes"; then
+    AC_DEFINE([HAVE_PAGEVEC_LRU_ADD_FILE], 1, [define if your kernel has __pagevec_lru_add_file()])
+  fi])
+
 AC_DEFUN([LINUX_STRUCT_TASK_HAS_CRED], [
   AC_MSG_CHECKING([if struct task has cred])
   AC_CACHE_VAL([ac_cv_linux_struct_task_has_cred], [