From 476ff5a4daf804c28c87a0bb4a833e09eb01a050 Mon Sep 17 00:00:00 2001 From: Etienne Dechamps Date: Thu, 2 Aug 2012 15:33:31 +0200 Subject: [PATCH] Handle any invalidate_inodes_check prototype. In the comments of commit 723aa3b0c2eed070f7eeadd2ce2d87f46da6d0f8, mmatuska reported that the test for invalidate_inodes_check() is broken if invalidate_inodes() takes two arguments. This patch fixes the issue by resorting to another approach for detecting invalidate_inodes_check(): is simply checks if invalidate_inodes is defined as a macro. If it is, then it concludes that invalidate_inodes_check() is available. This will continue to work even if the prototype of invalidate_inodes_check() changes over time. Signed-off-by: Brian Behlendorf Closes #148 --- config/spl-build.m4 | 7 ++++--- configure | 10 ++++++---- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/config/spl-build.m4 b/config/spl-build.m4 index 7ec81e7131..d7c89bc489 100644 --- a/config/spl-build.m4 +++ b/config/spl-build.m4 @@ -2072,9 +2072,10 @@ AC_DEFUN([SPL_AC_KERNEL_INVALIDATE_INODES], [ AC_MSG_CHECKING([whether invalidate_inodes_check() is available]) SPL_LINUX_TRY_COMPILE_SYMBOL([ #include - ], [ - invalidate_inodes_check(NULL, 0); - ], [invalidate_inodes_check], [], [ + #ifndef invalidate_inodes + #error invalidate_inodes is not a macro + #endif + ], [ ], [invalidate_inodes_check], [], [ AC_MSG_RESULT(yes) AC_DEFINE(HAVE_INVALIDATE_INODES_CHECK, 1, [invalidate_inodes_check() is available]) diff --git a/configure b/configure index 1ca8e847f0..bbaedb0530 100755 --- a/configure +++ b/configure @@ -17147,13 +17147,14 @@ cat >>conftest.$ac_ext <<_ACEOF #include + #ifndef invalidate_inodes + #error invalidate_inodes is not a macro + #endif int main (void) { - invalidate_inodes_check(NULL, 0); - ; return 0; } @@ -23343,13 +23344,14 @@ cat >>conftest.$ac_ext <<_ACEOF #include + #ifndef invalidate_inodes + #error invalidate_inodes is not a macro + #endif int main (void) { - invalidate_inodes_check(NULL, 0); - ; return 0; }