# Quota support. The kernel must support CONFIG_QUOTA.
#
AC_DEFUN([LC_QUOTA_CONFIG],
-[LB_LINUX_CONFIG_IM([QUOTA],[AC_DEFINE(HAVE_QUOTA_SUPPORT, 1, [support quota])],[
- AC_MSG_ERROR([Lustre quota requires that CONFIG_QUOTA is enabled in your kernel.])
-])
+[LB_LINUX_CONFIG_IM([QUOTA],[],[
+ AC_MSG_ERROR([Lustre quota requires that CONFIG_QUOTA is enabled in your kernel.])
+ ])
])
# truncate_complete_page() was exported from RHEL5/SLES10, but not in SLES11 SP0 (2.6.27)
AC_DEFUN([LC_CONST_ACL_SIZE],
[AC_MSG_CHECKING([calc acl size])
tmp_flags="$CFLAGS"
-CFLAGS="$CFLAGS -I$LINUX/include -I$LINUX_OBJ/include -I$LINUX_OBJ/include2 -I$LINUX/arch/`uname -m|sed -e 's/ppc.*/powerpc/' -e 's/x86_64/x86/' -e 's/i.86/x86/'`/include -include $AUTOCONF_HDIR/autoconf.h $EXTRA_KCFLAGS"
+CFLAGS="$CFLAGS -I$LINUX/include -I$LINUX_OBJ/include -I$LINUX_OBJ/include2 -I$LINUX/arch/`echo $target_cpu|sed -e 's/powerpc64/powerpc/' -e 's/x86_64/x86/' -e 's/i.86/x86/'`/include -include $AUTOCONF_HDIR/autoconf.h $EXTRA_KCFLAGS"
AC_TRY_RUN([
#define __KERNEL__
#include <linux/types.h>
])
])
-# 2.6.27 has file_remove_suid instead of remove_suid
-AC_DEFUN([LC_FILE_REMOVE_SUID],
-[AC_MSG_CHECKING([kernel has file_remove_suid])
-LB_LINUX_TRY_COMPILE([
- #include <linux/fs.h>
-],[
- file_remove_suid(NULL);
-],[
- AC_DEFINE(HAVE_FILE_REMOVE_SUID, 1,
- [kernel have file_remove_suid])
- AC_MSG_RESULT([yes])
-],[
- AC_MSG_RESULT([no])
-])
-])
-
# 2.6.27 have new page locking API
AC_DEFUN([LC_TRYLOCKPAGE],
[AC_MSG_CHECKING([kernel uses trylock_page for page lock])
])
#
+# 2.6.39 replace get_sb with mount in struct file_system_type
+#
+AC_DEFUN([LC_HAVE_FSTYPE_MOUNT],
+[AC_MSG_CHECKING([if file_system_type has mount field])
+LB_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
+],[
+ struct file_system_type fst;
+ void *i = (void *) fst.mount;
+],[
+ AC_DEFINE(HAVE_FSTYPE_MOUNT, 1,
+ [struct file_system_type has mount field])
+ AC_MSG_RESULT([yes])
+],[
+ AC_MSG_RESULT([no])
+])
+])
+
+#
# 2.6.38 generic_permission taken 4 parameters.
# in fact, it means rcu-walk aware permission bring.
#
])
#
+# 3.3 introduces migrate_mode.h and migratepage has 4 args
+#
+AC_DEFUN([LC_HAVE_MIGRATE_HEADER],
+[LB_CHECK_FILE([$LINUX/include/linux/migrate.h],[
+ AC_DEFINE(HAVE_MIGRATE_H, 1,
+ [kernel has include/linux/migrate.h])
+],[LB_CHECK_FILE([$LINUX/include/linux/migrate_mode.h],[
+ AC_DEFINE(HAVE_MIGRATE_MODE_H, 1,
+ [kernel has include/linux/migrate_mode.h])
+],[
+ AC_MSG_RESULT([no])
+])
+])
+])
+
+AC_DEFUN([LC_MIGRATEPAGE_4ARGS],
+[AC_MSG_CHECKING([if address_space_operations.migratepage has 4 args])
+LB_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
+#ifdef HAVE_MIGRATE_H
+ #include <linux/migrate.h>
+#elif defined(HAVE_MIGRATE_MODE_H)
+ #include <linux/migrate_mode.h>
+#endif
+],[
+ struct address_space_operations aops;
+
+ aops.migratepage(NULL, NULL, NULL, MIGRATE_ASYNC);
+],[
+ AC_DEFINE(HAVE_MIGRATEPAGE_4ARGS, 1,
+ [address_space_operations.migratepage has 4 args])
+ AC_MSG_RESULT([yes])
+],[
+ AC_MSG_RESULT([no])
+])
+])
+
+#
+# 3.1.1 has ext4_blocks_for_truncate
+#
+AC_DEFUN([LC_BLOCKS_FOR_TRUNCATE],
+[AC_MSG_CHECKING([if kernel has ext4_blocks_for_truncate])
+LB_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
+ #include "$LINUX/fs/ext4/ext4_jbd2.h"
+ #include "$LINUX/fs/ext4/truncate.h"
+],[
+ ext4_blocks_for_truncate(NULL);
+],[
+ AC_MSG_RESULT([yes])
+ AC_DEFINE(HAVE_BLOCKS_FOR_TRUNCATE, 1,
+ [kernel has ext4_blocks_for_truncate])
+],[
+ AC_MSG_RESULT([no])
+])
+])
+
+#
# LC_PROG_LINUX
#
# Lustre linux kernel checks
LC_PGMKWRITE_USE_VMFAULT
LC_PGMKWRITE_COMPACT
LC_INODE_PERMISION_2ARGS
- LC_FILE_REMOVE_SUID
LC_TRYLOCKPAGE
LC_READ_INODE_IN_SBOPS
LC_EXPORT_INODE_PERMISSION
# 2.6.39
LC_REQUEST_QUEUE_UNPLUG_FN
+ LC_HAVE_FSTYPE_MOUNT
+
+ # 3.3
+ LC_HAVE_MIGRATE_HEADER
+ LC_MIGRATEPAGE_4ARGS
+
+ # 3.1.1
+ LC_BLOCKS_FOR_TRUNCATE
#
if test x$enable_server = xyes ; then
])
#
+# LC_OSD_ADDON
+#
+# configure support for optional OSD implementation
+#
+AC_DEFUN([LC_OSD_ADDON],
+[AC_MSG_CHECKING([for osd])
+AC_ARG_WITH([osd],
+ AC_HELP_STRING([--with-osd=path],
+ [set path to optional osd]),
+ [
+ case $with_osd in
+ no) ENABLEOSDADDON=0
+ ;;
+ *) OSDADDON="${with_osd}"
+ ENABLEOSDADDON=1
+ ;;
+ esac
+ ], [
+ ENABLEOSDADDON=0
+ ])
+if test $ENABLEOSDADDON -eq 0; then
+ AC_MSG_RESULT([no])
+ OSDADDON=
+else
+ OSDMODNAME=`basename $OSDADDON`
+ if test -e $LUSTRE/$OSDMODNAME; then
+ AC_MSG_RESULT([can't link])
+ OSDADDON=
+ elif ln -s $OSDADDON $LUSTRE/$OSDMODNAME; then
+ AC_MSG_RESULT([$OSDMODNAME])
+ OSDADDON="subdir-m += $OSDMODNAME"
+ else
+ AC_MSG_RESULT([can't link])
+ OSDADDON=
+ fi
+fi
+AC_SUBST(OSDADDON)
+])
+
+#
# LC_CONFIGURE
#
# other configure checks
lustre/kernel_patches/targets/2.6-oel5.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
lustre/ldlm/Makefile
lustre/fid/Makefile
lustre/fid/autoMakefile
lustre/quota/Makefile
lustre/quota/autoMakefile
lustre/scripts/Makefile
-lustre/scripts/lustre
lustre/tests/Makefile
lustre/tests/mpi/Makefile
lustre/utils/Makefile
lustre/utils/gss/Makefile
+lustre/osp/Makefile
+lustre/osp/autoMakefile
+lustre/lod/Makefile
+lustre/lod/autoMakefile
lustre/obdclass/darwin/Makefile
])
])