From 28df3030790336ac5dfd338cbe6acec5ff964e3f Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Tue, 23 Oct 2001 16:27:25 +0000 Subject: [PATCH] linux-configure-support-mandrake-kernel-patches-20011023 init_once in mandrake calls init_rwsem(&inode->i_truncate_sem); so do we --- acconfig.h | 1 + acinclude.m4 | 4 ++++ src/afs/afs_vcache.c | 3 +++ src/cf/linux-test2.m4 | 15 +++++++++++++++ 4 files changed, 23 insertions(+) diff --git a/acconfig.h b/acconfig.h index e02e143df..ece70bd0e 100644 --- a/acconfig.h +++ b/acconfig.h @@ -30,6 +30,7 @@ static /**/const char *const rcsid[] = { (char *)rcsid, "\100(#)" msg } #undef INODE_SETATTR_NOT_VOID #undef STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK +#undef STRUCT_INODE_HAS_I_TRUNCATE_SEM /* glue for RedHat kernel bug */ #undef ENABLE_REDHAT_BUILDSYS diff --git a/acinclude.m4 b/acinclude.m4 index b68353ddb..26107cea9 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -126,6 +126,7 @@ case $system in [LINUX_BUILD_VNODE_FROM_INODE(${srcdir}/src/config,src/afs/LINUX,${srcdir}/src/afs/LINUX)] ) LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK + LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM LINUX_INODE_SETATTR_RETURN_TYPE LINUX_NEED_RHCONFIG LINUX_WHICH_MODULES @@ -135,6 +136,9 @@ case $system in if test "x$ac_cv_linux_fs_struct_address_space_has_page_lock" = "xyes"; then AC_DEFINE(STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK) fi + if test "x$ac_cv_linux_fs_struct_inode_has_i_truncate_sem" = "xyes"; then + AC_DEFINE(STRUCT_INODE_HAS_I_TRUNCATE_SEM) + fi : fi ;; diff --git a/src/afs/afs_vcache.c b/src/afs/afs_vcache.c index 53ed8aa17..205feff91 100644 --- a/src/afs/afs_vcache.c +++ b/src/afs/afs_vcache.c @@ -964,6 +964,9 @@ struct vcache *afs_NewVCache(struct VenusFid *afid, struct server *serverp, INIT_LIST_HEAD(&ip->i_dirty_buffers); ip->i_data.host = (void*) ip; ip->i_mapping = &ip->i_data; +#ifdef STRUCT_INODE_HAS_I_TRUNCATE_SEM + init_rwsem(&ip->i_truncate_sem); +#endif #else sema_init(&ip->i_atomic_write, 1); init_waitqueue(&ip->i_wait); diff --git a/src/cf/linux-test2.m4 b/src/cf/linux-test2.m4 index 99536c1f9..6a6a9db1c 100644 --- a/src/cf/linux-test2.m4 +++ b/src/cf/linux-test2.m4 @@ -13,6 +13,21 @@ ac_cv_linux_fs_struct_inode_has_i_bytes=no)]) AC_MSG_RESULT($ac_cv_linux_fs_struct_inode_has_i_bytes) CPPFLAGS="$save_CPPFLAGS"]) +AC_DEFUN(LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM, [ +AC_MSG_CHECKING(for i_truncate_sem in struct inode) +save_CPPFLAGS="$CPPFLAGS" +CPPFLAGS="-I${LINUX_KERNEL_PATH}/include -D__KERNEL__ $CPPFLAGS" +AC_CACHE_VAL(ac_cv_linux_fs_struct_inode_has_i_truncate_sem, +[ +AC_TRY_COMPILE( +[#include ], +[struct inode _i; +printf("%x\n", _i.i_truncate_sem);], +ac_cv_linux_fs_struct_inode_has_i_truncate_sem=yes, +ac_cv_linux_fs_struct_inode_has_i_truncate_sem=no)]) +AC_MSG_RESULT($ac_cv_linux_fs_struct_inode_has_i_truncate_sem) +CPPFLAGS="$save_CPPFLAGS"]) + AC_DEFUN(LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK, [ AC_MSG_CHECKING(for page_lock in struct address_space) save_CPPFLAGS="$CPPFLAGS" -- 2.39.5