+AC_DEFUN([LC_EXPORT_TRUNCATE_COMPLETE],
+[LB_CHECK_SYMBOL_EXPORT([truncate_complete_page],
+[mm/truncate.c],[
+AC_DEFINE(HAVE_TRUNCATE_COMPLETE_PAGE, 1,
+ [kernel export truncate_complete_page])
+],[
+])
+])
+
+AC_DEFUN([LC_EXPORT_TRUNCATE_RANGE],
+[LB_CHECK_SYMBOL_EXPORT([truncate_inode_pages_range],
+[mm/truncate.c],[
+AC_DEFINE(HAVE_TRUNCATE_RANGE, 1,
+ [kernel export truncate_inode_pages_range])
+],[
+])
+])
+
+AC_DEFUN([LC_EXPORT_D_REHASH_COND],
+[LB_CHECK_SYMBOL_EXPORT([d_rehash_cond],
+[fs/dcache.c],[
+AC_DEFINE(HAVE_D_REHASH_COND, 1,
+ [d_rehash_cond is exported by the kernel])
+],[
+])
+])
+
+AC_DEFUN([LC_EXPORT___D_REHASH],
+[LB_CHECK_SYMBOL_EXPORT([__d_rehash],
+[fs/dcache.c],[
+AC_DEFINE(HAVE___D_REHASH, 1,
+ [__d_rehash is exported by the kernel])
+],[
+])
+])
+
+# The actual symbol exported varies among architectures, so we need
+# to check many symbols (but only in the current architecture.) No
+# matter what symbol is exported, the kernel #defines node_to_cpumask
+# to the appropriate function and that's what we use.
+AC_DEFUN([LC_EXPORT_NODE_TO_CPUMASK],
+ [LB_CHECK_SYMBOL_EXPORT([node_to_cpumask],
+ [arch/$LINUX_ARCH/mm/numa.c],
+ [AC_DEFINE(HAVE_NODE_TO_CPUMASK, 1,
+ [node_to_cpumask is exported by
+ the kernel])]) # x86_64
+ LB_CHECK_SYMBOL_EXPORT([node_to_cpu_mask],
+ [arch/$LINUX_ARCH/kernel/smpboot.c],
+ [AC_DEFINE(HAVE_NODE_TO_CPUMASK, 1,
+ [node_to_cpumask is exported by
+ the kernel])]) # ia64
+ LB_CHECK_SYMBOL_EXPORT([node_2_cpu_mask],
+ [arch/$LINUX_ARCH/kernel/smpboot.c],
+ [AC_DEFINE(HAVE_NODE_TO_CPUMASK, 1,
+ [node_to_cpumask is exported by
+ the kernel])]) # i386
+ ])
+