Whamcloud - gitweb
LU-11607 tests: replace version/fstype in sanity-dom/quota
[fs/lustre-release.git] / config / lustre-build-ldiskfs.m4
index 32420b1..8daef5b 100644 (file)
@@ -14,6 +14,7 @@ AS_IF([test -z "$LDISKFS_SERIES"], [
 AS_IF([test x$RHEL_KERNEL = xyes], [
        case $RHEL_RELEASE_NO in
        80)     LDISKFS_SERIES="4.18-rhel8.series"      ;;
+       77)     LDISKFS_SERIES="3.10-rhel7.7.series"    ;;
        76)     LDISKFS_SERIES="3.10-rhel7.6.series"    ;;
        75)     LDISKFS_SERIES="3.10-rhel7.5.series"    ;;
        74)     LDISKFS_SERIES="3.10-rhel7.4.series"    ;;
@@ -114,23 +115,6 @@ ext4_free_blocks_with_buffer_head, [
 ]) # LB_EXT_FREE_BLOCKS_WITH_BUFFER_HEAD
 
 #
-# LB_EXT_PBLOCK
-#
-# 2.6.35 renamed ext_pblock to ext4_ext_pblock(ex)
-#
-AC_DEFUN([LB_EXT_PBLOCK], [
-LB_CHECK_COMPILE([if Linux kernel has 'ext_pblock'],
-ext_pblock, [
-       #include <linux/fs.h>
-       #include "$EXT4_SRC_DIR/ext4_extents.h"
-],[
-       ext_pblock(NULL);
-],[
-       AC_DEFINE(HAVE_EXT_PBLOCK, 1, [Linux kernel has ext_pblock])
-])
-]) # LB_EXT_PBLOCK
-
-#
 # LB_EXT4_JOURNAL_START_3ARGS
 #
 # 3.9 added a type argument to ext4_journal_start and friends
@@ -148,25 +132,6 @@ ext4_journal_start, [
 ]) # LB_EXT4_JOURNAL_START_3ARGS
 
 #
-# LB_LDISKFS_MAP_BLOCKS
-#
-# Since 2.6.35 brought ext4_map_blocks() for IO.
-# We just check this function whether existed.
-# it must be exported by ldiskfs patches.
-#
-AC_DEFUN([LB_LDISKFS_MAP_BLOCKS], [
-LB_CHECK_COMPILE([if kernel has ext4_map_blocks],
-ext4_map_blocks, [
-       #include <linux/fs.h>
-       #include "$EXT4_SRC_DIR/ext4.h"
-],[
-       ext4_map_blocks(NULL, NULL, NULL, 0);
-],[
-       AC_DEFINE(HAVE_LDISKFS_MAP_BLOCKS, 1, [kernel has ext4_map_blocks])
-])
-])
-
-#
 # LB_EXT4_BREAD_4ARGS
 #
 # 3.18 ext4_bread has 4 arguments
@@ -241,6 +206,29 @@ ext4_i_crypt_info, [
 ]) # LB_EXT4_HAVE_I_CRYPT_INFO
 
 #
+# LB_LDISKFS_IGET_HAS_FLAGS_ARG
+#
+# kernel 4.19 commit 8a363970d1dc38c4ec4ad575c862f776f468d057
+# ext4_iget changed to a macro with 3 args was function with 2 args
+#
+AC_DEFUN([LB_LDISKFS_IGET_HAS_FLAGS_ARG], [
+tmp_flags="$EXTRA_KCFLAGS"
+EXTRA_KCFLAGS="-Werror"
+LB_CHECK_COMPILE([if ldiskfs_iget takes a flags argument],
+ext4_iget_3args, [
+       #include <linux/fs.h>
+       #include "$EXT4_SRC_DIR/ext4.h"
+],[
+       int f = EXT4_IGET_SPECIAL;
+       (void)f;
+],[
+       AC_DEFINE(HAVE_LDISKFS_IGET_WITH_FLAGS, 1,
+               [if ldiskfs_iget takes a flags argument])
+])
+EXTRA_KCFLAGS="$tmp_flags"
+]) # LB_LDISKFS_IGET_HAS_FLAGS_ARG
+
+#
 # LDISKFS_AC_PATCH_PROGRAM
 #
 # Determine which program should be used to apply the patches to
@@ -274,6 +262,28 @@ AC_DEFUN([LDISKFS_AC_PATCH_PROGRAM], [
 ]) # LDISKFS_AC_PATCH_PROGRAM
 
 #
+# LB_HAVE_BVEC_ITER_ALL
+#
+# kernel 5.1 commit 6dc4f100c175dd0511ae8674786e7c9006cdfbfa
+# block: allow bio_for_each_segment_all() to iterate over multi-page bvec
+#
+AC_DEFUN([LB_HAVE_BVEC_ITER_ALL], [
+tmp_flags="$EXTRA_KCFLAGS"
+EXTRA_KCFLAGS="-Werror"
+LB_CHECK_COMPILE([if bvec_iter_all exists for multi-page bvec iternation],
+ext4fs_dirhash, [
+       #include <linux/bvec.h>
+],[
+       struct bvec_iter_all iter;
+       (void)iter;
+],[
+       AC_DEFINE(HAVE_BVEC_ITER_ALL, 1,
+               [if bvec_iter_all exists for multi-page bvec iternation])
+])
+EXTRA_KCFLAGS="$tmp_flags"
+]) # LB_HAVE_BVEC_ITER_ALL
+
+#
 # LB_CONFIG_LDISKFS
 #
 AC_DEFUN([LB_CONFIG_LDISKFS], [
@@ -317,12 +327,12 @@ AS_IF([test x$enable_ldiskfs != xno],[
        LDISKFS_LINUX_SERIES
        LDISKFS_AC_PATCH_PROGRAM
        LB_EXT_FREE_BLOCKS_WITH_BUFFER_HEAD
-       LB_EXT_PBLOCK
        LB_EXT4_JOURNAL_START_3ARGS
-       LB_LDISKFS_MAP_BLOCKS
        LB_EXT4_BREAD_4ARGS
        LB_EXT4_HAVE_INFO_DQUOT
        LB_EXT4_HAVE_I_CRYPT_INFO
+       LB_LDISKFS_IGET_HAS_FLAGS_ARG
+       LB_HAVE_BVEC_ITER_ALL
        AC_DEFINE(CONFIG_LDISKFS_FS_POSIX_ACL, 1, [posix acls for ldiskfs])
        AC_DEFINE(CONFIG_LDISKFS_FS_SECURITY, 1, [fs security for ldiskfs])
        AC_DEFINE(CONFIG_LDISKFS_FS_XATTR, 1, [extened attributes for ldiskfs])