+# 3.14 bring truncate_inode_pages_final for evict_inode
+#
+AC_DEFUN([LC_HAVE_TRUNCATE_IPAGES_FINAL], [
+LB_CHECK_COMPILE([if Linux kernel has truncate_inode_pages_final],
+truncate_ipages_final, [
+ #include <linux/mm.h>
+],[
+ truncate_inode_pages_final(NULL);
+], [
+ AC_DEFINE(HAVE_TRUNCATE_INODE_PAGES_FINAL, 1,
+ [kernel has truncate_inode_pages_final])
+])
+]) # LC_HAVE_TRUNCATE_IPAGES_FINAL
+#
+# LC_VFS_RENAME_6ARGS
+#
+# 3.15 has vfs_rename with 6 args
+#
+AC_DEFUN([LC_VFS_RENAME_6ARGS], [
+LB_CHECK_COMPILE([if Linux kernel has 'vfs_rename' with 6 args],
+vfs_rename_6args, [
+ #include <linux/fs.h>
+],[
+ vfs_rename(NULL, NULL, NULL, NULL, NULL, NULL);
+], [
+ AC_DEFINE(HAVE_VFS_RENAME_6ARGS, 1,
+ [kernel has vfs_rename with 6 args])
+])
+]) # LC_VFS_RENAME_6ARGS
+
+#
+# LC_PROG_LINUX
+#
+# Lustre linux kernel checks
+#
+AC_DEFUN([LC_PROG_LINUX], [
+ AC_MSG_NOTICE([Lustre kernel checks
+==============================================================================])
+
+ LC_CONFIG_PINGER
+ LC_CONFIG_CHECKSUM
+ LC_CONFIG_HEALTH_CHECK_WRITE
+ LC_CONFIG_LRU_RESIZE
+ LC_LLITE_LLOOP_MODULE
+
+ LC_GLIBC_SUPPORT_FHANDLES
+ LC_CAPA_CRYPTO
+ LC_CONFIG_RMTCLIENT
+ LC_CONFIG_GSS
+
+ # 2.6.32
+ LC_BLK_QUEUE_MAX_SEGMENTS
+
+ # 2.6.34
+ LC_HAVE_DQUOT_FS_DISK_QUOTA
+ LC_HAVE_DQUOT_SUSPEND
+
+ # 2.6.35, 3.0.0
+ LC_FILE_FSYNC
+ LC_EXPORT_SIMPLE_SETATTR
+ LC_EXPORT_TRUNCATE_COMPLETE_PAGE
+
+ # 2.6.36
+ LC_FS_STRUCT_RWLOCK
+ LC_SBOPS_EVICT_INODE
+
+ # 2.6.37
+ LC_KERNEL_LOCKED
+
+ # 2.6.38
+ LC_BLKDEV_GET_BY_DEV
+ LC_GENERIC_PERMISSION
+ LC_DCACHE_LOCK
+ LC_INODE_I_RCU
+ LC_D_COMPARE_7ARGS
+ LC_D_DELETE_CONST
+
+ # 2.6.39
+ LC_REQUEST_QUEUE_UNPLUG_FN
+ LC_HAVE_FHANDLE_SYSCALLS
+ LC_HAVE_FSTYPE_MOUNT
+ LC_IOP_TRUNCATE
+ LC_HAVE_INODE_OWNER_OR_CAPABLE
+
+ # 3.0
+ LC_DIRTY_INODE_WITH_FLAG
+
+ # 3.1
+ LC_LM_XXX_LOCK_MANAGER_OPS
+ LC_INODE_DIO_WAIT
+ LC_IOP_GET_ACL
+ LC_FILE_LLSEEK_SIZE
+ LC_INODE_PERMISION_2ARGS
+ LC_RADIX_EXCEPTION_ENTRY
+
+ # 3.2
+ LC_HAVE_VOID_MAKE_REQUEST_FN
+ LC_HAVE_PROTECT_I_NLINK
+
+ # 3.3
+ LC_HAVE_MIGRATE_HEADER
+ LC_MIGRATEPAGE_4ARGS
+ LC_SUPEROPS_USE_DENTRY
+ LC_INODEOPS_USE_UMODE_T
+ LC_HAVE_CACHE_REGISTER
+
+ # 3.4
+ LC_HAVE_D_MAKE_ROOT
+ LC_KMAP_ATOMIC_HAS_1ARG
+
+ # 3.5
+ LC_HAVE_CLEAR_INODE
+ LC_HAVE_ENCODE_FH_PARENT
+ LC_FILE_LLSEEK_SIZE_5ARG
+
+ # 3.6
+ LC_HAVE_DENTRY_D_ALIAS_HLIST
+ LC_DENTRY_OPEN_USE_PATH
+ LC_HAVE_IOP_ATOMIC_OPEN
+
+ # 3.7
+ LC_HAVE_POSIXACL_USER_NS
+
+ # 3.8
+ LC_HAVE_FILE_F_INODE
+ LC_HAVE_SUNRPC_UPCALL_HAS_3ARGS
+
+ # 3.9
+ LC_HAVE_HLIST_FOR_EACH_3ARG
+ LC_HAVE_BIO_END_SECTOR
+
+ # 3.10
+ LC_HAVE_ONLY_PROCFS_SEQ
+ LC_BLKDEV_RELEASE_RETURN_INT
+
+ # 3.11
+ LC_INVALIDATE_RANGE
+ LC_HAVE_DIR_CONTEXT
+ LC_D_COMPARE_5ARGS
+ LC_HAVE_DCOUNT
+
+ # 3.12
+ LC_OLDSIZE_TRUNCATE_PAGECACHE
+ LC_KIOCB_KI_LEFT
+
+ # 3.13
+ LC_VFS_RENAME_5ARGS
+ LC_VFS_UNLINK_3ARGS
+
+ # 3.14
+ LC_HAVE_BVEC_ITER
+ LC_HAVE_TRUNCATE_IPAGES_FINAL
+
+ # 3.15
+ LC_VFS_RENAME_6ARGS
+
+ #
+ AS_IF([test "x$enable_server" != xno], [
+ LC_FUNC_DEV_SET_RDONLY
+ LC_STACK_SIZE
+ LC_QUOTA64
+ LC_QUOTA_CONFIG