Handle any invalidate_inodes_check prototype.

In the comments of commit 723aa3b0c2,
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 <behlendorf1@llnl.gov>
Closes #148
This commit is contained in:
Etienne Dechamps
2012-08-02 15:33:31 +02:00
committed by Brian Behlendorf
parent 6576a1a70d
commit 476ff5a4da
2 changed files with 10 additions and 7 deletions
+4 -3
View File
@@ -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 <linux/fs.h>
], [
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])