Whamcloud - gitweb
b=11694
[fs/lustre-release.git] / lustre / autoconf / lustre-core.m4
index 8342e99..b6a7110 100644 (file)
@@ -817,6 +817,7 @@ AC_DEFUN([LC_INODE_I_MUTEX],
 LB_LINUX_TRY_COMPILE([
        #include <linux/mutex.h>
        #include <linux/fs.h>
+       #undef i_mutex
 ],[
        struct inode i;
 
@@ -830,6 +831,18 @@ LB_LINUX_TRY_COMPILE([
 ])
 ])
 
+# LC_SYMVERFILE
+# SLES 9 uses a different name for this file - unsure about vanilla kernels
+# around this version, but it matters for servers only.
+AC_DEFUN([LC_SYMVERFILE],
+         [AC_MSG_CHECKING([name of symverfile])
+          if grep -q Modules.symvers $LINUX/scripts/Makefile.modpost ; then
+              SYMVERFILE=Modules.symvers
+          else
+              SYMVERFILE=Module.symvers
+          fi
+         AC_MSG_RESULT($SYMVERFILE)
+          AC_SUBST(SYMVERFILE)])
 
 # LC_DQUOTOFF_MUTEX
 # after 2.6.17 dquote use mutex instead if semaphore
@@ -1151,6 +1164,65 @@ AC_DEFUN([LC_EXPORT_NODE_TO_CPUMASK],
                                              the kernel])]) # i386
           ])
 
+# 2.6.22 lost second parameter for invalidate_bdev
+AC_DEFUN([LC_INVALIDATE_BDEV_2ARG],
+[AC_MSG_CHECKING([if invalidate_bdev has second argument])
+LB_LINUX_TRY_COMPILE([
+        #include <linux/buffer_head.h>
+],[
+        invalidate_bdev(NULL,0);
+],[
+        AC_MSG_RESULT([yes])
+        AC_DEFINE(HAVE_INVALIDATE_BDEV_2ARG, 1,
+                [invalidate_bdev has second argument])
+],[
+        AC_MSG_RESULT([no])
+])
+])
+
+# 2.6.23 have return type 'void' for unregister_blkdev
+AC_DEFUN([LC_UNREGISTER_BLKDEV_RETURN_INT],
+[AC_MSG_CHECKING([if unregister_blkdev return int])
+LB_LINUX_TRY_COMPILE([
+        #include <linux/fs.h>
+],[
+        int i = unregister_blkdev(0,NULL);
+],[
+        AC_MSG_RESULT([yes])
+        AC_DEFINE(HAVE_UNREGISTER_BLKDEV_RETURN_INT, 1, 
+                [unregister_blkdev return int])
+],[
+        AC_MSG_RESULT([no])
+])
+])
+
+# 2.6.23 change .sendfile to .splice_read
+AC_DEFUN([LC_KERNEL_SPLICE_READ],
+[AC_MSG_CHECKING([if kernel has .splice_read])
+LB_LINUX_TRY_COMPILE([
+        #include <linux/fs.h>
+],[
+        struct file_operations file;
+
+        file.splice_read = NULL;
+], [
+        AC_MSG_RESULT([yes])
+        AC_DEFINE(HAVE_KERNEL_SPLICE_READ, 1,
+                [kernel has .slice_read])
+],[
+        AC_MSG_RESULT([no])
+])
+])
+
+# 2.6.23 extract nfs export related data into exportfs.h
+AC_DEFUN([LC_HAVE_EXPORTFS_H],
+[
+tmpfl="$CFLAGS"
+CFLAGS="$CFLAGS -I$LINUX_OBJ/include"
+AC_CHECK_HEADERS([linux/exportfs.h])
+CFLAGS="$tmpfl"
+])
+
 #
 # LC_VFS_INTENT_PATCHES
 #
@@ -1277,96 +1349,106 @@ CFLAGS="$tmp_flags"
 # Lustre linux kernel checks
 #
 AC_DEFUN([LC_PROG_LINUX],
-[ LC_LUSTRE_VERSION_H
-if test x$enable_server = xyes ; then
-        LC_CONFIG_BACKINGFS
-fi
-LC_CONFIG_PINGER
-LC_CONFIG_CHECKSUM
-LC_CONFIG_LIBLUSTRE_RECOVERY
-LC_CONFIG_QUOTA
-LC_CONFIG_HEALTH_CHECK_WRITE
-LC_CONFIG_LRU_RESIZE
-
-
-LC_TASK_PPTR
-# RHEL4 patches
-LC_EXPORT_TRUNCATE_COMPLETE
-LC_EXPORT_D_REHASH_COND
-LC_EXPORT___D_REHASH
-LC_EXPORT_NODE_TO_CPUMASK
-
-LC_STRUCT_KIOBUF
-LC_FUNC_COND_RESCHED
-LC_FUNC_ZAP_PAGE_RANGE
-LC_FUNC_PDE
-LC_FUNC_DIRECT_IO
-LC_HEADER_MM_INLINE
-LC_STRUCT_INODE
-LC_FUNC_REGISTER_CACHE
-LC_FUNC_GRAB_CACHE_PAGE_NOWAIT_GFP
-LC_FUNC_DEV_SET_RDONLY
-LC_FUNC_FILEMAP_FDATAWRITE
-LC_STRUCT_STATFS
-LC_FUNC_PAGE_MAPPED
-LC_STRUCT_FILE_OPS_UNLOCKED_IOCTL
-LC_FILEMAP_POPULATE
-LC_D_ADD_UNIQUE
-LC_BIT_SPINLOCK_H
-
-LC_XATTR_ACL
-LC_POSIX_ACL_XATTR_H
-LC_CONST_ACL_SIZE
-
-LC_STRUCT_INTENT_FILE
-
-LC_FUNC_SET_FS_PWD
-LC_CAPA_CRYPTO
-LC_CONFIG_GSS
-LC_FUNC_MS_FLOCK_LOCK
-LC_FUNC_HAVE_CAN_SLEEP_ARG
-LC_FUNC_F_OP_FLOCK
-LC_QUOTA_READ
-LC_COOKIE_FOLLOW_LINK
-LC_FUNC_RCU
-
-# does the kernel have VFS intent patches?
-LC_VFS_INTENT_PATCHES
-
-# ~2.6.11
-LC_S_TIME_GRAN
-LC_SB_TIME_GRAN
-
-# 2.6.12
-LC_RW_TREE_LOCK
-
-# 2.6.15
-LC_INODE_I_MUTEX
-
-# 2.6.17
-LC_DQUOTOFF_MUTEX
-
-# 2.6.18
-LC_NR_PAGECACHE
-LC_STATFS_DENTRY_PARAM
-LC_VFS_KERN_MOUNT
-LC_INVALIDATEPAGE_RETURN_INT
-LC_UMOUNTBEGIN_HAS_VFSMOUNT
-
-#2.6.18 + RHEL5 (fc6)
-LC_PG_FS_MISC
-
-# 2.6.19
-LC_INODE_BLKSIZE
-LC_VFS_READDIR_U64_INO
-LC_GENERIC_FILE_READ
-LC_GENERIC_FILE_WRITE
-
-# 2.6.20
-LC_CANCEL_DIRTY_PAGE
-
-# raid5-zerocopy patch
-LC_PAGE_CONSTANT
+         [LC_LUSTRE_VERSION_H
+         if test x$enable_server = xyes ; then
+             AC_DEFINE(HAVE_SERVER_SUPPORT, 1, [support server])
+             LC_CONFIG_BACKINGFS
+         fi
+         LC_CONFIG_PINGER
+         LC_CONFIG_CHECKSUM
+         LC_CONFIG_LIBLUSTRE_RECOVERY
+         LC_CONFIG_QUOTA
+         LC_CONFIG_HEALTH_CHECK_WRITE
+         LC_CONFIG_LRU_RESIZE
+
+         LC_TASK_PPTR
+         # RHEL4 patches
+         LC_EXPORT_TRUNCATE_COMPLETE
+         LC_EXPORT_D_REHASH_COND
+         LC_EXPORT___D_REHASH
+         LC_EXPORT_NODE_TO_CPUMASK
+
+         LC_STRUCT_KIOBUF
+         LC_FUNC_COND_RESCHED
+         LC_FUNC_ZAP_PAGE_RANGE
+         LC_FUNC_PDE
+         LC_FUNC_DIRECT_IO
+         LC_HEADER_MM_INLINE
+         LC_STRUCT_INODE
+         LC_FUNC_REGISTER_CACHE
+         LC_FUNC_GRAB_CACHE_PAGE_NOWAIT_GFP
+         LC_FUNC_DEV_SET_RDONLY
+         LC_FUNC_FILEMAP_FDATAWRITE
+         LC_STRUCT_STATFS
+         LC_FUNC_PAGE_MAPPED
+         LC_STRUCT_FILE_OPS_UNLOCKED_IOCTL
+         LC_FILEMAP_POPULATE
+         LC_D_ADD_UNIQUE
+         LC_BIT_SPINLOCK_H
+
+         LC_XATTR_ACL
+         LC_POSIX_ACL_XATTR_H
+         LC_CONST_ACL_SIZE
+
+         LC_STRUCT_INTENT_FILE
+
+         LC_FUNC_SET_FS_PWD
+         LC_CAPA_CRYPTO
+         LC_CONFIG_GSS
+         LC_FUNC_MS_FLOCK_LOCK
+         LC_FUNC_HAVE_CAN_SLEEP_ARG
+         LC_FUNC_F_OP_FLOCK
+         LC_QUOTA_READ
+         LC_COOKIE_FOLLOW_LINK
+         LC_FUNC_RCU
+
+         # does the kernel have VFS intent patches?
+         LC_VFS_INTENT_PATCHES
+
+         # ~2.6.11
+         LC_S_TIME_GRAN
+         LC_SB_TIME_GRAN
+
+         # 2.6.12
+         LC_RW_TREE_LOCK
+
+         # 2.6.15
+         LC_INODE_I_MUTEX
+
+         # SLES 10 (at least)
+         LC_SYMVERFILE
+
+         # 2.6.17
+         LC_DQUOTOFF_MUTEX
+
+         # 2.6.18
+         LC_NR_PAGECACHE
+         LC_STATFS_DENTRY_PARAM
+         LC_VFS_KERN_MOUNT
+         LC_INVALIDATEPAGE_RETURN_INT
+         LC_UMOUNTBEGIN_HAS_VFSMOUNT
+
+         #2.6.18 + RHEL5 (fc6)
+         LC_PG_FS_MISC
+
+         # 2.6.19
+         LC_INODE_BLKSIZE
+         LC_VFS_READDIR_U64_INO
+         LC_GENERIC_FILE_READ
+         LC_GENERIC_FILE_WRITE
+
+         # 2.6.20
+         LC_CANCEL_DIRTY_PAGE
+
+         # raid5-zerocopy patch
+         LC_PAGE_CONSTANT
+                 
+        # 2.6.22
+         LC_INVALIDATE_BDEV_2ARG
+         # 2.6.23
+         LC_UNREGISTER_BLKDEV_RETURN_INT
+         LC_KERNEL_SPLICE_READ
+         LC_HAVE_EXPORTFS_H
 ])
 
 #
@@ -1414,6 +1496,19 @@ if test x$enable_liblustre != xyes ; then
 fi
 AC_MSG_RESULT([$enable_liblustre_tests])
 
+AC_MSG_CHECKING([whether to enable liblustre acl])
+AC_ARG_ENABLE([liblustre-acl],
+       AC_HELP_STRING([--disable-liblustre-acl],
+                       [disable ACL support for liblustre]),
+       [],[enable_liblustre_acl=yes])
+if test x$enable_liblustre != xyes ; then
+   enable_liblustre_acl='no'
+fi
+AC_MSG_RESULT([$enable_liblustre_acl])
+if test x$enable_liblustre_acl != xno ; then
+  AC_DEFINE(LIBLUSTRE_POSIX_ACL, 1, Liblustre Support ACL-enabled MDS)
+fi
+
 AC_MSG_CHECKING([whether to build mpitests])
 AC_ARG_ENABLE([mpitests],
        AC_HELP_STRING([--enable-mpitests],
@@ -1637,7 +1732,6 @@ lustre/include/Makefile
 lustre/include/lustre_ver.h
 lustre/include/linux/Makefile
 lustre/include/lustre/Makefile
-lustre/kernel_patches/targets/2.6-suse.target
 lustre/kernel_patches/targets/2.6-vanilla.target
 lustre/kernel_patches/targets/2.6-rhel4.target
 lustre/kernel_patches/targets/2.6-rhel5.target