From 12136567fc41d77d9863fe590b95ea59e8d0cf2c Mon Sep 17 00:00:00 2001 From: "Mark W. Eichin" Date: Mon, 1 Oct 2001 18:31:49 +0000 Subject: [PATCH] linux24-another-new-inode-field-sigh-20011001 with configure glue by shadow@dementia.org one of these days we really need to implement a better solution --- acconfig.h | 5 +++-- configure-libafs.in | 4 ++++ configure.in | 4 ++++ src/afs/LINUX/osi_vfs.h | 3 +++ src/cf/linux-test4.m4 | 16 ++++++++++++++++ 5 files changed, 30 insertions(+), 2 deletions(-) diff --git a/acconfig.h b/acconfig.h index 12ef98bd8..38198b4e3 100644 --- a/acconfig.h +++ b/acconfig.h @@ -29,13 +29,14 @@ static /**/const char *const rcsid[] = { (char *)rcsid, "\100(#)" msg } #undef FULL_LISTVOL_SWITCH #undef INODE_SETATTR_NOT_VOID +#undef STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK #undef STRUCT_INODE_HAS_I_BYTES #undef STRUCT_INODE_HAS_I_CDEV -#undef STRUCT_INODE_HAS_I_TRUNCATE_SEM +#undef STRUCT_INODE_HAS_I_DEVICES #undef STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS #undef STRUCT_INODE_HAS_I_MAPPING_OVERLOAD #undef STRUCT_INODE_HAS_I_MMAP_SHARED -#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/configure-libafs.in b/configure-libafs.in index 052941230..f337340d3 100644 --- a/configure-libafs.in +++ b/configure-libafs.in @@ -115,6 +115,7 @@ case $system in LINUX_FS_STRUCT_INODE_HAS_I_BYTES LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK LINUX_FS_STRUCT_INODE_HAS_I_CDEV + LINUX_FS_STRUCT_INODE_HAS_I_DEVICES LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS LINUX_FS_STRUCT_INODE_HAS_I_MAPPING_OVERLOAD @@ -134,6 +135,9 @@ case $system in if test "x$ac_cv_linux_fs_struct_inode_has_i_mapping_overload" = "xyes"; then AC_DEFINE(STRUCT_INODE_HAS_I_MAPPING_OVERLOAD) fi + if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then + AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES) + fi if test "x$ac_cv_linux_fs_struct_inode_has_i_cdev" = "xyes"; then AC_DEFINE(STRUCT_INODE_HAS_I_CDEV) fi diff --git a/configure.in b/configure.in index f858aee45..f9f74e77e 100644 --- a/configure.in +++ b/configure.in @@ -115,6 +115,7 @@ case $system in LINUX_FS_STRUCT_INODE_HAS_I_BYTES LINUX_FS_STRUCT_ADDRESS_SPACE_HAS_PAGE_LOCK LINUX_FS_STRUCT_INODE_HAS_I_CDEV + LINUX_FS_STRUCT_INODE_HAS_I_DEVICES LINUX_FS_STRUCT_INODE_HAS_I_TRUNCATE_SEM LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS LINUX_FS_STRUCT_INODE_HAS_I_MAPPING_OVERLOAD @@ -134,6 +135,9 @@ case $system in if test "x$ac_cv_linux_fs_struct_inode_has_i_mapping_overload" = "xyes"; then AC_DEFINE(STRUCT_INODE_HAS_I_MAPPING_OVERLOAD) fi + if test "x$ac_cv_linux_fs_struct_inode_has_i_devices" = "xyes"; then + AC_DEFINE(STRUCT_INODE_HAS_I_DEVICES) + fi if test "x$ac_cv_linux_fs_struct_inode_has_i_cdev" = "xyes"; then AC_DEFINE(STRUCT_INODE_HAS_I_CDEV) fi diff --git a/src/afs/LINUX/osi_vfs.h b/src/afs/LINUX/osi_vfs.h index b5f92e125..962e3b1bb 100644 --- a/src/afs/LINUX/osi_vfs.h +++ b/src/afs/LINUX/osi_vfs.h @@ -91,6 +91,9 @@ typedef struct vnode { #endif struct dquot *i_dquot[MAXQUOTAS]; #if defined(AFS_LINUX24_ENV) +#if defined(STRUCT_INODE_HAS_I_DEVICES) + struct list_head i_devices; +#endif struct pipe_inode_info *i_pipe; struct block_device *i_bdev; #if defined(STRUCT_INODE_HAS_I_CDEV) diff --git a/src/cf/linux-test4.m4 b/src/cf/linux-test4.m4 index ae22e138e..98ad56999 100644 --- a/src/cf/linux-test4.m4 +++ b/src/cf/linux-test4.m4 @@ -72,3 +72,19 @@ 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_INODE_HAS_I_DEVICES, [ +AC_MSG_CHECKING(for i_devices 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_cdev, +[ +AC_TRY_COMPILE( +[#include ], +[struct inode _inode; +printf("%d\n", _inode.i_devices);], +ac_cv_linux_fs_struct_inode_has_i_devices=yes, +ac_cv_linux_fs_struct_inode_has_i_devices=no)]) +AC_MSG_RESULT($ac_cv_linux_fs_struct_inode_has_i_devices) +CPPFLAGS="$save_CPPFLAGS"]) + -- 2.39.5