X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Fautoconf%2Flustre-core.m4;h=601da014503e03c9ecfca1a93486e8592e5c0a5e;hp=0ee18aa098a9d86a97c5ac097f4799d7eb910afc;hb=7e1758e5621df902c5942d100a75cebde8df0327;hpb=4c3858b3c88d2a2f443d348945229f5995f3e1dd diff --git a/lustre/autoconf/lustre-core.m4 b/lustre/autoconf/lustre-core.m4 index 0ee18aa..601da01 100644 --- a/lustre/autoconf/lustre-core.m4 +++ b/lustre/autoconf/lustre-core.m4 @@ -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 @@ -838,20 +826,19 @@ lock_manager_ops_lm_xxx, [ # # LC_INODE_DIO_WAIT # -# 3.1 kills inode->i_alloc_sem, use i_dio_count and inode_dio_wait/ -# inode_dio_done instead. +# 3.1 kills inode->i_alloc_sem, use i_dio_count and inode_dio_wait +# instead. # see kernel commit bd5fe6c5eb9c548d7f07fe8f89a150bb6705e8e3 # AC_DEFUN([LC_INODE_DIO_WAIT], [ -LB_CHECK_COMPILE([if 'inode->i_alloc_sem' is killed and use inode_dio_wait/done], +LB_CHECK_COMPILE([if 'inode->i_alloc_sem' is killed and use inode_dio_wait], inode_dio_wait, [ #include ],[ inode_dio_wait((struct inode *)0); - inode_dio_done((struct inode *)0); ],[ AC_DEFINE(HAVE_INODE_DIO_WAIT, 1, - [inode->i_alloc_sem is killed and use inode_dio_wait/done]) + [inode->i_alloc_sem is killed and use inode_dio_wait]) ]) ]) # LC_INODE_DIO_WAIT @@ -1621,6 +1608,112 @@ vfs_rename_6args, [ ]) # LC_VFS_RENAME_6ARGS # +# LC_DIRECTIO_USE_ITER +# +# 3.16 kernel changes direct IO to use iov_iter +# +AC_DEFUN([LC_DIRECTIO_USE_ITER], [ +LB_CHECK_COMPILE([if direct IO uses iov_iter], +direct_io_iter, [ + #include +],[ + struct address_space_operations ops; + struct iov_iter *iter = NULL; + loff_t offset = 0; + + ops.direct_IO(0, NULL, iter, offset); +],[ + AC_DEFINE(HAVE_DIRECTIO_ITER, 1, + [direct IO uses iov_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 +],[ + 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 +],[ + 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 +],[ + 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 +# +AC_DEFUN([LC_IOV_ITER_RW], [ +LB_CHECK_COMPILE([if iov_iter_rw exist], +iov_iter_rw, [ + #include + #include +],[ + struct iov_iter *iter = NULL; + + iov_iter_rw(iter); +],[ + AC_DEFINE(HAVE_IOV_ITER_RW, 1, + [iov_iter_rw exist]) +]) +]) # LC_IOV_ITER_RW + +# # LC_PROG_LINUX # # Lustre linux kernel checks @@ -1636,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 @@ -1750,6 +1842,21 @@ AC_DEFUN([LC_PROG_LINUX], [ # 3.15 LC_VFS_RENAME_6ARGS + # 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 + # AS_IF([test "x$enable_server" != xno], [ LC_FUNC_DEV_SET_RDONLY @@ -1808,9 +1915,9 @@ AC_ARG_ENABLE([mpitests], MPI_Initialized(&flag); return 0; } - ])], [lb_cv_mpi_tests="yes"], [lb_cv_mpi_tests="no" - enable_mpitests=$lb_cv_mpi_tests]) + ])], [lb_cv_mpi_tests="yes"], [lb_cv_mpi_tests="no"]) ]) + enable_mpitests=$lb_cv_mpi_tests CC=$oldcc fi AC_SUBST(MPICC_WRAPPER) @@ -1942,20 +2049,19 @@ AS_IF([test $target_cpu == "i686" -o $target_cpu == "x86_64"], # maximum MDS thread count LC_MDS_MAX_THREADS +# lustre/utils/gss/gss_util.c +# lustre/utils/gss/gssd_proc.c +# lustre/utils/gss/krb5_util.c +# lustre/utils/llog_reader.c +# lustre/utils/create_iam.c +# lustre/utils/libiam.c +AC_CHECK_HEADERS([netdb.h endian.h]) +AC_CHECK_FUNCS([gethostbyname]) + # lustre/utils/llverdev.c AC_CHECK_HEADERS([blkid/blkid.h]) -# libcfs/include/libcfs/linux/linux-prim.h, ... -AC_CHECK_HEADERS([linux/types.h sys/types.h linux/unistd.h unistd.h]) - -# libcfs/include/libcfs/linux/linux-prim.h -AC_CHECK_HEADERS([linux/random.h], [], [], - [#ifdef HAVE_LINUX_TYPES_H - #include - #endif - ]) - -# utils/llverfs.c +# lustre/utils/llverfs.c AC_CHECK_HEADERS([ext2fs/ext2fs.h]) SELINUX="" @@ -2069,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