mirror of
https://git.openafs.org/openafs.git
synced 2025-01-18 06:50:12 +00:00
STABLE14-linux-2623-support-20071004
FIXES 70773
update for support for 2.6.23
(cherry picked from commit 127cebfacd
)
This commit is contained in:
parent
bd19ed2af0
commit
328dd7b2dc
12
acinclude.m4
12
acinclude.m4
@ -582,6 +582,8 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
|
||||
)
|
||||
|
||||
LINUX_KERNEL_COMPILE_WORKS
|
||||
LINUX_HAVE_KMEM_CACHE_T
|
||||
LINUX_KMEM_CACHE_CREATE_TAKES_DTOR
|
||||
LINUX_CONFIG_H_EXISTS
|
||||
LINUX_COMPLETION_H_EXISTS
|
||||
LINUX_DEFINES_FOR_EACH_PROCESS
|
||||
@ -611,6 +613,7 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
|
||||
LINUX_FOP_F_FLUSH_TAKES_FL_OWNER_T
|
||||
LINUX_AOP_WRITEBACK_CONTROL
|
||||
LINUX_FS_STRUCT_FOP_HAS_FLOCK
|
||||
LINUX_FS_STRUCT_FOP_HAS_SENDFILE
|
||||
LINUX_KERNEL_LINUX_SYSCALL_H
|
||||
LINUX_KERNEL_LINUX_SEQ_FILE_H
|
||||
LINUX_KERNEL_POSIX_LOCK_FILE_WAIT_ARG
|
||||
@ -855,12 +858,21 @@ case $AFS_SYSNAME in *_linux* | *_umlinux*)
|
||||
if test "x$ac_cv_linux_fs_struct_fop_has_flock" = "xyes" ; then
|
||||
echo flock support is currently disabled in OpenAFS 1.4 for Linux
|
||||
fi
|
||||
if test "x$ac_cv_linux_fs_struct_fop_has_sendfile" = "xyes" ; then
|
||||
AC_DEFINE(STRUCT_FILE_OPERATIONS_HAS_SENDFILE, 1, [define if your struct file_operations has sendfile])
|
||||
fi
|
||||
if test "x$ac_cv_linux_register_sysctl_table_noflag" = "xyes" ; then
|
||||
AC_DEFINE(REGISTER_SYSCTL_TABLE_NOFLAG, 1, [define if register_sysctl_table has no insert_at head flag])
|
||||
fi
|
||||
if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then
|
||||
AC_DEFINE(EXPORTED_TASKLIST_LOCK, 1, [define if tasklist_lock exported])
|
||||
fi
|
||||
if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
|
||||
AC_DEFINE(HAVE_KMEM_CACHE_T, 1, [define if kmem_cache_t exists])
|
||||
fi
|
||||
if test "x$ac_cv_linux_have_kmem_cache_t" = "xyes" ; then
|
||||
AC_DEFINE(KMEM_CACHE_TAKES_DTOR, 1, [define if kmem_cache_create takes a destructor argument])
|
||||
fi
|
||||
if test "x$ac_cv_linux_kernel_page_follow_link" = "xyes" -o "x$ac_cv_linux_func_i_put_link_takes_cookie" = "xyes"; then
|
||||
AC_DEFINE(USABLE_KERNEL_PAGE_SYMLINK_CACHE, 1, [define if your kernel has a usable symlink cache API])
|
||||
else
|
||||
|
@ -263,7 +263,11 @@ afs_notify_change(struct dentry *dp, struct iattr *iattrp)
|
||||
|
||||
|
||||
#if defined(STRUCT_SUPER_HAS_ALLOC_INODE)
|
||||
#if defined(HAVE_KMEM_CACHE_T)
|
||||
static kmem_cache_t *afs_inode_cachep;
|
||||
#else
|
||||
struct kmem_cache *afs_inode_cachep;
|
||||
#endif
|
||||
|
||||
static struct inode *
|
||||
afs_alloc_inode(struct super_block *sb)
|
||||
@ -288,7 +292,11 @@ afs_destroy_inode(struct inode *inode)
|
||||
}
|
||||
|
||||
static void
|
||||
#if defined(HAVE_KMEM_CACHE_T)
|
||||
init_once(void * foo, kmem_cache_t * cachep, unsigned long flags)
|
||||
#else
|
||||
init_once(void * foo, struct kmem_cache * cachep, unsigned long flags)
|
||||
#endif
|
||||
{
|
||||
struct vcache *vcp = (struct vcache *) foo;
|
||||
|
||||
@ -306,10 +314,17 @@ afs_init_inodecache(void)
|
||||
#define SLAB_RECLAIM_ACCOUNT 0
|
||||
#endif
|
||||
|
||||
#if defined(KMEM_CACHE_TAKES_DTOR)
|
||||
afs_inode_cachep = kmem_cache_create("afs_inode_cache",
|
||||
sizeof(struct vcache),
|
||||
0, SLAB_HWCACHE_ALIGN | SLAB_RECLAIM_ACCOUNT,
|
||||
init_once, NULL);
|
||||
#else
|
||||
afs_inode_cachep = kmem_cache_create("afs_inode_cache",
|
||||
sizeof(struct vcache),
|
||||
0, SLAB_HWCACHE_ALIGN | SLAB_RECLAIM_ACCOUNT,
|
||||
init_once);
|
||||
#endif
|
||||
if (afs_inode_cachep == NULL)
|
||||
return -ENOMEM;
|
||||
return 0;
|
||||
|
@ -640,7 +640,7 @@ struct file_operations afs_file_fops = {
|
||||
.mmap = afs_linux_mmap,
|
||||
.open = afs_linux_open,
|
||||
.flush = afs_linux_flush,
|
||||
#ifdef AFS_LINUX26_ENV
|
||||
#if defined(AFS_LINUX26_ENV) && defined(STRUCT_FILE_OPERATIONS_HAS_SENDFILE)
|
||||
.sendfile = generic_file_sendfile,
|
||||
#endif
|
||||
.release = afs_linux_release,
|
||||
|
@ -863,3 +863,34 @@ fl_owner_t id;
|
||||
ac_cv_linux_func_f_flush_takes_fl_owner_t=no)])
|
||||
AC_MSG_RESULT($ac_cv_linux_func_f_flush_takes_fl_owner_t)])
|
||||
|
||||
AC_DEFUN([LINUX_HAVE_KMEM_CACHE_T], [
|
||||
AC_MSG_CHECKING([whether kmem_cache_t exists])
|
||||
AC_CACHE_VAL([ac_cv_linux_have_kmem_cache_t], [
|
||||
AC_TRY_KBUILD(
|
||||
[#include <linux/slab.h>],
|
||||
[kmem_cache_t *k;],
|
||||
ac_cv_linux_have_kmem_cache_t=yes,
|
||||
ac_cv_linux_have_kmem_cache_t=no)])
|
||||
AC_MSG_RESULT($ac_cv_linux_have_kmem_cache_t)])
|
||||
|
||||
AC_DEFUN([LINUX_KMEM_CACHE_CREATE_TAKES_DTOR], [
|
||||
AC_MSG_CHECKING([whether kmem_cache_create takes a destructor argument])
|
||||
AC_CACHE_VAL([ac_cv_linux_kmem_cache_create_takes_dtor], [
|
||||
AC_TRY_KBUILD(
|
||||
[#include <linux/slab.h>],
|
||||
[kmem_cache_create(NULL, 0, 0, 0, NULL, NULL);],
|
||||
ac_cv_linux_kmem_cache_create_takes_dtor=yes,
|
||||
ac_cv_linux_kmem_cache_create_takes_dtor=no)])
|
||||
AC_MSG_RESULT($ac_cv_linux_kmem_cache_create_takes_dtor)])
|
||||
|
||||
AC_DEFUN([LINUX_FS_STRUCT_FOP_HAS_SENDFILE], [
|
||||
AC_MSG_CHECKING([for sendfile in struct file_operations])
|
||||
AC_CACHE_VAL([ac_cv_linux_fs_struct_fop_has_sendfile], [
|
||||
AC_TRY_KBUILD(
|
||||
[#include <linux/fs.h>],
|
||||
[struct file_operations _fop;
|
||||
_fop.sendfile(NULL, NULL, 0, 0, NULL);],
|
||||
ac_cv_linux_fs_struct_fop_has_sendfile=yes,
|
||||
ac_cv_linux_fs_struct_fop_has_sendfile=no)])
|
||||
AC_MSG_RESULT($ac_cv_linux_fs_struct_fop_has_sendfile)])
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user