From: Simon Wilkinson Date: Wed, 30 Sep 2009 09:44:51 +0000 (+0200) Subject: Add configure test for pagevec_lru_add_file X-Git-Tag: openafs-devel-1_5_65~3 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=d5b40d99a9e8284c1ce8784a6b8fcc7fb7453532;p=packages%2Fo%2Fopenafs.git Add configure test for pagevec_lru_add_file 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 Reviewed-by: Marc Dionne Tested-by: Derrick Brashear Reviewed-by: Derrick Brashear --- diff --git a/acinclude.m4 b/acinclude.m4 index 6d60abcf3..03a98547a 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -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 diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c index 5e092a82e..d58e9dd60 100644 --- a/src/afs/LINUX/osi_vnodeops.c +++ b/src/afs/LINUX/osi_vnodeops.c @@ -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 diff --git a/src/cf/linux-test4.m4 b/src/cf/linux-test4.m4 index afc244245..306587d42 100644 --- a/src/cf/linux-test4.m4 +++ b/src/cf/linux-test4.m4 @@ -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 ], +[__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], [