]) # LC_HAVE_LOOP_CTL_GET_FREE
#
+# LC_HAVE_CACHE_HEAD_HLIST
+#
+# 4.3 kernel swiched to hlist for cache_head
+#
+AC_DEFUN([LC_HAVE_CACHE_HEAD_HLIST], [
+LB_CHECK_COMPILE([if 'struct cache_head' has 'cache_list' field],
+cache_head_has_hlist, [
+ #include <linux/sunrpc/cache.h>
+],[
+ do {} while(sizeof(((struct cache_head *)0)->cache_list));
+],[
+ AC_DEFINE(HAVE_CACHE_HEAD_HLIST, 1,
+ [cache_head has hlist cache_list])
+])
+]) # LC_HAVE_CACHE_HEAD_HLIST
+
+#
+# LC_HAVE_LOCKS_LOCK_FILE_WAIT
+#
+# 4.4 kernel have moved locks API users to
+# locks_lock_inode_wait()
+#
+AC_DEFUN([LC_HAVE_LOCKS_LOCK_FILE_WAIT], [
+LB_CHECK_COMPILE([if 'locks_lock_file_wait' exists],
+locks_lock_file_wait, [
+ #include <linux/fs.h>
+],[
+ locks_lock_file_wait(NULL, NULL);
+],[
+ AC_DEFINE(HAVE_LOCKS_LOCK_FILE_WAIT, 1,
+ [kernel has locks_lock_file_wait])
+])
+]) # LC_HAVE_LOCKS_LOCK_FILE_WAIT
+
+#
+# LC_HAVE_QC_MAKE_REQUEST_FN
+#
+# 4.4 request_queue.make_request_fn defined as function returns with blk_qc_t
+# see kernel commit dece16353ef47d8d33f5302bc158072a9d65e26f
+#
+AC_DEFUN([LC_HAVE_QC_MAKE_REQUEST_FN], [
+LB_CHECK_COMPILE([if 'request_queue.make_request_fn' returns blk_qc_t],
+make_request_fn_blk_qc_t, [
+ #include <linux/blkdev.h>
+],[
+ blk_qc_t ret;
+ make_request_fn *mrf;
+ ret = mrf(NULL, NULL);
+],[
+ AC_DEFINE(HAVE_QC_MAKE_REQUEST_FN, 1,
+ [request_queue.make_request_fn returns blk_qc_t])
+])
+]) # LC_HAVE_QC_MAKE_REQUEST_FN
+
+#
# LC_PROG_LINUX
#
# Lustre linux kernel checks
LC_BIO_ENDIO_USES_ONE_ARG
LC_SYMLINK_OPS_USE_NAMEIDATA
+ # 4.3
+ LC_HAVE_CACHE_HEAD_HLIST
+
+ # 4.4
+ LC_HAVE_LOCKS_LOCK_FILE_WAIT
+ LC_HAVE_QC_MAKE_REQUEST_FN
+
#
AS_IF([test "x$enable_server" != xno], [
LC_FUNC_DEV_SET_RDONLY