Whamcloud - gitweb
LU-6215 llite: filldir_t api changed for 3.18 kernels
[fs/lustre-release.git] / lustre / autoconf / lustre-core.m4
index 37f1fe9..601da01 100644 (file)
@@ -215,18 +215,6 @@ LB_CHECK_EXPORT([delete_from_page_cache], [mm/filemap.c],
 ]) # LC_EXPORT_TRUNCATE_COMPLETE_PAGE
 
 #
-# LC_CAPA_CRYPTO
-#
-AC_DEFUN([LC_CAPA_CRYPTO], [
-LB_CHECK_CONFIG_IM([CRYPTO], [],
-       [AC_MSG_ERROR([Lustre capability require that CONFIG_CRYPTO is enabled in your kernel.])])
-LB_CHECK_CONFIG_IM([CRYPTO_HMAC], [],
-       [AC_MSG_ERROR([Lustre capability require that CONFIG_CRYPTO_HMAC is enabled in your kernel.])])
-LB_CHECK_CONFIG_IM([CRYPTO_SHA1], [],
-       [AC_MSG_ERROR([Lustre capability require that CONFIG_CRYPTO_SHA1 is enabled in your kernel.])])
-]) # LC_CAPA_CRYPTO
-
-#
 # LC_CONFIG_RMTCLIENT
 #
 dnl FIXME
@@ -1641,6 +1629,71 @@ direct_io_iter, [
 ]) # LC_DIRECTIO_USE_ITER
 
 #
+# LC_NFS_FILLDIR_USE_CTX
+#
+# 3.18 kernel moved from void cookie to struct dir_context
+#
+AC_DEFUN([LC_NFS_FILLDIR_USE_CTX], [
+tmp_flags="$EXTRA_KCFLAGS"
+EXTRA_KCFLAGS="-Werror"
+LB_CHECK_COMPILE([if filldir_t uses struct dir_context],
+filldir_ctx, [
+       #include <linux/fs.h>
+],[
+       int filldir(struct dir_context *ctx, const char* name,
+                   int i, loff_t off, u64 tmp, unsigned temp)
+       {
+               return 0;
+       }
+
+       struct dir_context ctx = {
+               .actor = filldir,
+       };
+
+       ctx.actor(NULL, "test", 0, (loff_t) 0, 0, 0);
+],[
+       AC_DEFINE(HAVE_FILLDIR_USE_CTX, 1,
+               [filldir_t needs struct dir_context as argument])
+])
+EXTRA_KCFLAGS="$tmp_flags"
+]) # LC_NFS_FILLDIR_USE_CTX
+
+#
+# LC_KIOCB_HAS_NBYTES
+#
+# 3.19 kernel removed ki_nbytes from struct kiocb
+#
+AC_DEFUN([LC_KIOCB_HAS_NBYTES], [
+LB_CHECK_COMPILE([if struct kiocb has ki_nbytes field],
+ki_nbytes, [
+       #include <linux/fs.h>
+],[
+       struct kiocb iocb;
+
+       iocb.ki_nbytes = 0;
+],[
+       AC_DEFINE(HAVE_KI_NBYTES, 1, [ki_nbytes field exist])
+])
+]) # LC_KIOCB_HAS_NBYTES
+
+#
+# LC_CANCEL_DIRTY_PAGE
+#
+# 4.0.0 kernel removed cancle_dirty_page
+#
+AC_DEFUN([LC_CANCEL_DIRTY_PAGE], [
+LB_CHECK_COMPILE([if cancel_dirty_page still exist],
+cancel_dirty_page, [
+       #include <linux/mm.h>
+],[
+       cancel_dirty_page(NULL, PAGE_SIZE);
+],[
+       AC_DEFINE(HAVE_CANCEL_DIRTY_PAGE, 1,
+               [cancel_dirty_page is still available])
+])
+]) # LC_CANCEL_DIRTY_PAGE
+
+#
 # LC_IOV_ITER_RW
 #
 # 4.1 kernel has iov_iter_rw
@@ -1676,7 +1729,6 @@ AC_DEFUN([LC_PROG_LINUX], [
        LC_LLITE_LLOOP_MODULE
 
        LC_GLIBC_SUPPORT_FHANDLES
-       LC_CAPA_CRYPTO
        LC_CONFIG_RMTCLIENT
        LC_CONFIG_GSS
 
@@ -1793,6 +1845,15 @@ AC_DEFUN([LC_PROG_LINUX], [
        # 3.16
        LC_DIRECTIO_USE_ITER
 
+       # 3.18
+       LC_NFS_FILLDIR_USE_CTX
+
+       # 3.19
+       LC_KIOCB_HAS_NBYTES
+
+       # 4.0.0
+       LC_CANCEL_DIRTY_PAGE
+
        # 4.1.0
        LC_IOV_ITER_RW
 
@@ -2114,6 +2175,7 @@ lustre/kernel_patches/targets/2.6-rhel5.target
 lustre/kernel_patches/targets/2.6-sles11.target
 lustre/kernel_patches/targets/3.0-sles11.target
 lustre/kernel_patches/targets/3.0-sles11sp3.target
+lustre/kernel_patches/targets/3.12-sles12.target
 lustre/kernel_patches/targets/2.6-fc11.target
 lustre/kernel_patches/targets/2.6-fc12.target
 lustre/kernel_patches/targets/2.6-fc15.target