[LB_CHECK_FILE([$LINUX/include/linux/posix_acl_xattr.h],[
AC_MSG_CHECKING([if linux/posix_acl_xattr.h can be compiled])
LB_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
#include <linux/posix_acl_xattr.h>
],[],[
AC_MSG_RESULT([yes])
])
$1
],[
-AC_MSG_RESULT([no])
-])
-])
-
-#
-# LC_EXPORT___IGET
-# starting from 2.6.19 linux kernel exports __iget()
-#
-AC_DEFUN([LC_EXPORT___IGET],
-[LB_CHECK_SYMBOL_EXPORT([__iget],
-[fs/inode.c],[
- AC_DEFINE(HAVE_EXPORT___IGET, 1, [kernel exports __iget])
-],[
+ AC_MSG_RESULT([no])
])
])
])
])
+# LC_FLUSH_OWNER_ID
+# starting from 2.6.18 the file_operations .flush
+# method has a new "fl_owner_t id" parameter
+#
+AC_DEFUN([LC_FLUSH_OWNER_ID],
+[AC_MSG_CHECKING([if file_operations .flush has an fl_owner_t id])
+LB_LINUX_TRY_COMPILE([
+ #include <linux/fs.h>
+],[
+ struct file_operations *fops = NULL;
+ fl_owner_t id;
+ int i;
+
+ i = fops->flush(NULL, id);
+],[
+ AC_DEFINE(HAVE_FLUSH_OWNER_ID, 1,
+ [file_operations .flush method has an fl_owner_t id])
+ AC_MSG_RESULT([yes])
+],[
+ AC_MSG_RESULT([no])
+])
+])
+
#
# LC_STATFS_DENTRY_PARAM
# starting from 2.6.18 linux kernel uses dentry instead of
])
#
-# LC_D_OBTAIN_ALIAS
-# starting from 2.6.18 kernel don't export do_kern_mount
-# and want to use vfs_kern_mount instead.
-#
-AC_DEFUN([LC_D_OBTAIN_ALIAS],
-[AC_MSG_CHECKING([d_obtain_alias exist in kernel])
-LB_LINUX_TRY_COMPILE([
- #include <linux/dcache.h>
-],[
- d_obtain_alias(NULL);
-],[
- AC_DEFINE(HAVE_D_OBTAIN_ALIAS, 1,
- [d_obtain_alias exist in kernel])
- AC_MSG_RESULT([yes])
-],[
- AC_MSG_RESULT([no])
-])
-])
-
-#
# LC_INVALIDATEPAGE_RETURN_INT
# 2.6.17 changes return type for invalidatepage to 'void' from 'int'
#
])
])
+# 2.6.23 add code to wait other users to complete before removing procfs entry
+AC_DEFUN([LC_PROCFS_USERS],
+[AC_MSG_CHECKING([if kernel has pde_users member in procfs entry struct])
+LB_LINUX_TRY_COMPILE([
+ #include <linux/proc_fs.h>
+],[
+ struct proc_dir_entry pde;
+
+ pde.pde_users = 0;
+],[
+ AC_MSG_RESULT([yes])
+ AC_DEFINE(HAVE_PROCFS_USERS, 1,
+ [kernel has pde_users member in procfs entry struct])
+],[
+ AC_MSG_RESULT([no])
+])
+])
+
# 2.6.24 has bio_endio with 2 args
AC_DEFUN([LC_BIO_ENDIO_2ARG],
[AC_MSG_CHECKING([if kernel has bio_endio with 2 args])
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 $EXTRA_KCFLAGS"
+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 $EXTRA_KCFLAGS"
AC_TRY_RUN([
#define __KERNEL__
#include <linux/autoconf.h>
])
])
-# 2.6.27 sles11 move the quotaio_v1.h to fs
+#
+# 2.6.27 sles11 move the quotaio_v1{2}.h from include/linux to fs
+# 2.6.32 move the quotaio_v1{2}.h from fs to fs/quota
AC_DEFUN([LC_HAVE_QUOTAIO_V1_H],
[LB_CHECK_FILE([$LINUX/include/linux/quotaio_v1.h],[
AC_DEFINE(HAVE_QUOTAIO_V1_H, 1,
[kernel has include/linux/quotaio_v1.h])
+],[LB_CHECK_FILE([$LINUX/fs/quota/quotaio_v1.h],[
+ AC_DEFINE(HAVE_FS_QUOTA_QUOTAIO_V1_H, 1,
+ [kernel has fs/quota/quotaio_v1.h])
],[
AC_MSG_RESULT([no])
])
])
+])
# sles10 sp2 need 5 parameter for vfs_symlink
AC_DEFUN([LC_VFS_SYMLINK_5ARGS],
[])
])
+# LC_LOCK_MAP_ACQUIRE
+# after 2.6.27 lock_map_acquire replaces lock_acquire
+AC_DEFUN([LC_LOCK_MAP_ACQUIRE],
+[AC_MSG_CHECKING([if lock_map_acquire is defined])
+LB_LINUX_TRY_COMPILE([
+ #include <linux/lockdep.h>
+],[
+ lock_map_acquire(NULL);
+],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_LOCK_MAP_ACQUIRE, 1,
+ [lock_map_acquire is defined])
+],[
+ AC_MSG_RESULT(no)
+])
+])
+
+#
+# LC_D_OBTAIN_ALIAS
+# starting from 2.6.28 kernel replaces d_alloc_anon() with
+# d_obtain_alias() for getting anonymous dentries
+#
+AC_DEFUN([LC_D_OBTAIN_ALIAS],
+[AC_MSG_CHECKING([d_obtain_alias exist in kernel])
+LB_LINUX_TRY_COMPILE([
+ #include <linux/dcache.h>
+],[
+ d_obtain_alias(NULL);
+],[
+ AC_DEFINE(HAVE_D_OBTAIN_ALIAS, 1,
+ [d_obtain_alias exist in kernel])
+ AC_MSG_RESULT([yes])
+],[
+ AC_MSG_RESULT([no])
+])
+])
+
+# 2.6.31 replaces blk_queue_hardsect_size by blk_queue_logical_block_size function
+AC_DEFUN([LC_BLK_QUEUE_LOG_BLK_SIZE],
+[AC_MSG_CHECKING([if blk_queue_logical_block_size is defined])
+LB_LINUX_TRY_COMPILE([
+ #include <linux/blkdev.h>
+],[
+ blk_queue_logical_block_size(NULL, 0);
+],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_BLK_QUEUE_LOG_BLK_SIZE, 1,
+ [blk_queue_logical_block_size is defined])
+],[
+ AC_MSG_RESULT(no)
+])
+])
+
+# 2.6.32 add a limits member in struct request_queue.
+AC_DEFUN([LC_REQUEST_QUEUE_LIMITS],
+[AC_MSG_CHECKING([if request_queue has a limits field])
+LB_LINUX_TRY_COMPILE([
+ #include <linux/blkdev.h>
+],[
+ struct request_queue rq;
+ rq.limits.io_min = 0;
+],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_REQUEST_QUEUE_LIMITS, 1,
+ [request_queue has a limits field])
+],[
+ AC_MSG_RESULT(no)
+])
+])
+
+# RHEL6(backport from 2.6.34) removes 2 functions blk_queue_max_phys_segments and
+# blk_queue_max_hw_segments add blk_queue_max_segments
+AC_DEFUN([LC_BLK_QUEUE_MAX_SEGMENTS],
+[AC_MSG_CHECKING([if blk_queue_max_segments is defined])
+LB_LINUX_TRY_COMPILE([
+ #include <linux/blkdev.h>
+],[
+ blk_queue_max_segments(NULL, 0);
+],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_BLK_QUEUE_MAX_SEGMENTS, 1,
+ [blk_queue_max_segments is defined])
+],[
+ AC_MSG_RESULT(no)
+])
+])
+
+# RHEL6(backport from 2.6.34) removes blk_queue_max_sectors and add blk_queue_max_hw_sectors
+# check blk_queue_max_sectors and use it until disappear.
+AC_DEFUN([LC_BLK_QUEUE_MAX_SECTORS],
+[AC_MSG_CHECKING([if blk_queue_max_sectors is defined])
+LB_LINUX_TRY_COMPILE([
+ #include <linux/blkdev.h>
+],[
+ blk_queue_max_sectors(NULL, 0);
+],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_BLK_QUEUE_MAX_SECTORS, 1,
+ [blk_queue_max_sectors is defined])
+],[
+ AC_MSG_RESULT(no)
+])
+])
+
+# 2.6.32 has new BDI interface.
+AC_DEFUN([LC_NEW_BACKING_DEV_INFO],
+[AC_MSG_CHECKING([if backing_dev_info has a wb_cnt field])
+LB_LINUX_TRY_COMPILE([
+ #include <linux/backing-dev.h>
+],[
+ struct backing_dev_info bdi;
+ bdi.wb_cnt = 0;
+],[
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(HAVE_NEW_BACKING_DEV_INFO, 1,
+ [backing_dev_info has a wb_cnt field])
+],[
+ AC_MSG_RESULT(no)
+])
+])
+
+# 2.6.24 has bdi_init()/bdi_destroy() functions.
+AC_DEFUN([LC_EXPORT_BDI_INIT],
+[LB_CHECK_SYMBOL_EXPORT([bdi_init],
+[mm/backing-dev.c],[
+ AC_DEFINE(HAVE_BDI_INIT, 1,
+ [bdi_init/bdi_destroy functions are present])
+],[
+])
+])
+
#
# LC_PROG_LINUX
#
LC_COOKIE_FOLLOW_LINK
LC_FUNC_RCU
LC_PERCPU_COUNTER
- LC_QUOTA64
+ LC_TASK_CLENV_STORE
LC_4ARGS_VFS_SYMLINK
# does the kernel have VFS intent patches?
LC_UMOUNTBEGIN_HAS_VFSMOUNT
LC_SEQ_LOCK
LC_EXPORT_FILEMAP_FDATAWRITE_RANGE
+ LC_FLUSH_OWNER_ID
if test x$enable_server = xyes ; then
LC_EXPORT_INVALIDATE_MAPPING_PAGES
fi
LC_STRUCT_HASH_DESC
LC_STRUCT_BLKCIPHER_DESC
LC_FS_RENAME_DOES_D_MOVE
+
# 2.6.23
LC_UNREGISTER_BLKDEV_RETURN_INT
LC_KERNEL_SPLICE_READ
LC_HAVE_EXPORTFS_H
LC_VM_OP_FAULT
LC_REGISTER_SHRINKER
+ LC_PROCFS_USERS
# 2.6.24
LC_HAVE_MMTYPES_H
LC_BIO_ENDIO_2ARG
LC_FH_TO_DENTRY
LC_PROCFS_DELETED
+ LC_EXPORT_BDI_INIT
#2.6.25
LC_MAPPING_CAP_WRITEBACK_DIRTY
LC_QUOTA_ON_5ARGS
LC_QUOTA_OFF_3ARGS
LC_VFS_DQ_OFF
+ LC_LOCK_MAP_ACQUIRE
# 2.6.27.15-2 sles11
LC_BI_HW_SEGMENTS
LC_VFS_SYMLINK_5ARGS
LC_SB_ANY_QUOTA_ACTIVE
LC_SB_HAS_QUOTA_ACTIVE
+
+ # 2.6.31
+ LC_BLK_QUEUE_LOG_BLK_SIZE
+
+ # 2.6.32
+ LC_REQUEST_QUEUE_LIMITS
+ LC_NEW_BACKING_DEV_INFO
+ LC_BLK_QUEUE_MAX_SECTORS
+ LC_BLK_QUEUE_MAX_SEGMENTS
+
+ #
+ if test x$enable_server = xyes ; then
+ if test x$enable_quota_module = xyes ; then
+ LC_QUOTA64 # must after LC_HAVE_QUOTAIO_V1_H
+ fi
+ fi
])
#
# LC_QUOTA64
# linux kernel have 64-bit limits support
#
-AC_DEFUN([LC_QUOTA64],
-[if test x$enable_quota_module = xyes -a x$enable_server = xyes ; then
+AC_DEFUN([LC_QUOTA64],[
AC_MSG_CHECKING([if kernel has 64-bit quota limits support])
+tmp_flags="$EXTRA_KCFLAGS"
+EXTRA_KCFLAGS="-I$LINUX/fs"
LB_LINUX_TRY_COMPILE([
#include <linux/kernel.h>
#include <linux/fs.h>
- #include <linux/quotaio_v2.h>
+ #ifdef HAVE_QUOTAIO_V1_H
+ # include <linux/quotaio_v2.h>
int versions[] = V2_INITQVERSIONS_R1;
struct v2_disk_dqblk_r1 dqblk_r1;
- ],[],[
- AC_DEFINE(HAVE_QUOTA64, 1, [have quota64])
- AC_MSG_RESULT([yes])
- ],[
- tmp_flags="$EXTRA_KCFLAGS"
- EXTRA_KCFLAGS="-I $LINUX/fs"
- LB_LINUX_TRY_COMPILE([
- #include <linux/kernel.h>
- #include <linux/fs.h>
- #include <quotaio_v2.h>
+ #else
+ # ifdef HAVE_FS_QUOTA_QUOTAIO_V1_H
+ # include <quota/quotaio_v2.h>
+ # else
+ # include <quotaio_v2.h>
+ # endif
struct v2r1_disk_dqblk dqblk_r1;
+ #endif
],[],[
AC_DEFINE(HAVE_QUOTA64, 1, [have quota64])
AC_MSG_RESULT([yes])
],[])
AC_MSG_RESULT([no])
])
- EXTRA_KCFLAGS=$tmp_flags
- ])
-fi
+EXTRA_KCFLAGS=$tmp_flags
])
# LC_SECURITY_PLUG # for SLES10 SP2
])
])
+AC_DEFUN([LC_TASK_CLENV_TUX_INFO],
+[AC_MSG_CHECKING([tux_info])
+LB_LINUX_TRY_COMPILE([
+ #include <linux/sched.h>
+],[
+ struct task_struct task;
+ &task.tux_info;
+],[
+ AC_MSG_RESULT([yes])
+ AC_DEFINE(LL_TASK_CL_ENV, tux_info, [have tux_info])
+ have_task_clenv_store='yes'
+],[
+ AC_MSG_RESULT([no])
+])
+])
+
+AC_DEFUN([LC_TASK_CLENV_STORE],
+[
+ AC_MSG_CHECKING([if we can store cl_env in task_struct])
+ if test x$have_task_clenv_store != xyes ; then
+ LC_TASK_CLENV_TUX_INFO
+ fi
+])
+
#
# LC_CONFIGURE
#
AC_DEFINE([USE_LU_REF], 1, [enable lu_ref reference tracking code])
fi
+AC_ARG_ENABLE([pgstate-track],
+ AC_HELP_STRING([--enable-pgstate-track],
+ [enable page state tracking]),
+ [enable_pgstat_track='yes'],[])
+AC_MSG_CHECKING([whether to enable page state tracking])
+AC_MSG_RESULT([$enable_pgstat_track])
+if test x$enable_pgstat_track = xyes ; then
+ AC_DEFINE([LUSTRE_PAGESTATE_TRACKING], 1,
+ [enable page state tracking code])
+fi
+
#2.6.29
LC_WRITE_BEGIN_END
LC_D_OBTAIN_ALIAS
lustre/Makefile
lustre/autoMakefile
lustre/autoconf/Makefile
+lustre/conf/Makefile
lustre/contrib/Makefile
lustre/doc/Makefile
lustre/include/Makefile
lustre/include/lustre_ver.h
lustre/include/linux/Makefile
lustre/include/lustre/Makefile
-lustre/kernel_patches/targets/2.6-vanilla.target
-lustre/kernel_patches/targets/2.6-rhel4.target
lustre/kernel_patches/targets/2.6-rhel5.target
-lustre/kernel_patches/targets/2.6-fc5.target
-lustre/kernel_patches/targets/2.6-patchless.target
lustre/kernel_patches/targets/2.6-sles10.target
lustre/kernel_patches/targets/2.6-sles11.target
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/ldlm/Makefile
lustre/fid/Makefile
lustre/fid/autoMakefile
lustre/osc/autoMakefile
lustre/ost/Makefile
lustre/ost/autoMakefile
-lustre/osd/Makefile
-lustre/osd/autoMakefile
+lustre/osd-ldiskfs/Makefile
+lustre/osd-ldiskfs/autoMakefile
lustre/mgc/Makefile
lustre/mgc/autoMakefile
lustre/mgs/Makefile