linux-configure-support-mandrake-kernel-patches-20011023
authorDerrick Brashear <shadow@dementia.org>
Tue, 23 Oct 2001 16:27:25 +0000 (16:27 +0000)
committerDerrick Brashear <shadow@dementia.org>
Tue, 23 Oct 2001 16:27:25 +0000 (16:27 +0000)
init_once in mandrake calls init_rwsem(&inode->i_truncate_sem);

so do we

acconfig.h
acinclude.m4
src/afs/afs_vcache.c
src/cf/linux-test2.m4

index e02e143..ece70bd 100644 (file)
@@ -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
index b68353d..26107ce 100644 (file)
@@ -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
                 ;;
index 53ed8aa..205feff 100644 (file)
@@ -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);
index 99536c1..6a6a9db 100644 (file)
@@ -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 <linux/fs.h>],
+[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"