--- /dev/null Thu Jul 12 00:57:16 2001 +++ src/cf/solaris-dqrwlock.m4 Thu Jul 12 00:57:03 2001 @@ -0,0 +1,17 @@ +AC_DEFUN(SOLARIS_UFSVFS_HAS_DQRWLOCK, [ +AC_MSG_CHECKING(for vfs_dqrwlock in struct ufsvfs) +AC_CACHE_VAL(ac_cv_solaris_ufsvfs_has_dqrwlock, +[ +AC_TRY_COMPILE( +[#define _KERNEL +#include ], +[struct ufsvfs _ufsvfs; +(void) _ufsvfs.vfs_dqrwlock;], +ac_cv_solaris_ufsvfs_has_dqrwlock=yes, +ac_cv_solaris_ufsvfs_has_dqrwlock=no)]) +AC_MSG_RESULT($ac_cv_solaris_ufsvfs_has_dqrwlock) +if test "$ac_cv_solaris_ufsvfs_has_dqrwlock" = "yes"; then + AC_DEFINE(HAVE_VFS_DQRWLOCK, 1, [define if struct ufsvfs has vfs_dqrwlock]) +fi +]) + --- configure.in 2001/07/11 21:00:50 1.19 +++ configure.in 2001/07/12 05:01:42 @@ -106,6 +106,7 @@ *-solaris*) MKAFS_OSTYPE=SOLARIS AC_MSG_RESULT(sun4) + SOLARIS_UFSVFS_HAS_DQRWLOCK ;; *-hpux*) MKAFS_OSTYPE=HPUX --- src/afs/SOLARIS/osi_inode.c 2001/07/11 16:09:34 1.8 +++ src/afs/SOLARIS/osi_inode.c 2001/07/12 05:01:42 @@ -65,11 +65,11 @@ } ufsvfsp = (struct ufsvfs *)vfsp->vfs_data; -#if defined(AFS_SUN57_ENV) +#ifdef HAVE_VFS_DQRWLOCK rw_enter(&ufsvfsp->vfs_dqrwlock, RW_READER); #endif code = (*ufs_igetp)(vfsp, inode, &ip, credp); -#if defined(AFS_SUN57_ENV) +#ifdef HAVE_VFS_DQRWLOCK rw_exit(&ufsvfsp->vfs_dqrwlock); #endif @@ -173,14 +173,14 @@ ufsvfsp = ip->i_ufsvfs; rw_enter(&ip->i_rwlock, RW_WRITER); -#if defined(AFS_SUN57_ENV) +#ifdef HAVE_VFS_DQRWLOCK rw_enter(&ufsvfsp->vfs_dqrwlock, RW_READER); #endif rw_enter(&ip->i_contents, RW_WRITER); code = (*ufs_iallocp)(ip, near_inode, 0, &newip, credp); AFS_ITIMES_NOLOCK(ip); rw_exit(&ip->i_contents); -#if defined(AFS_SUN57_ENV) +#ifdef HAVE_VFS_DQRWLOCK rw_exit(&ufsvfsp->vfs_dqrwlock); #endif rw_exit(&ip->i_rwlock);