*_darwin*)
DARWIN_PLIST=src/libafs/afs.${AFS_SYSNAME}.plist
DARWIN_INFOFILE=afs.${AFS_SYSNAME}.plist
+ dnl the test below fails on darwin, even if the CPPFLAGS below
+ dnl are added. the headers from Kernel.Framework must be used
+ dnl when KERNEL is defined.
+
+ dnl really, such a thing isn't guaranteed to work on any
+ dnl platform until the kernel cflags from MakefileProto are
+ dnl known to configure
+ AC_DEFINE(HAVE_STRUCT_BUF)
;;
-esac
-
+ *)
AC_MSG_CHECKING(for definition of struct buf)
+dnl save_CPPFLAGS="$CPPFLAGS"
+dnl CPPFLAGS="$CPPFLAGS -DKERNEL -D_KERNEL -D__KERNEL -D__KERNEL__"
AC_CACHE_VAL(ac_cv_have_struct_buf, [
ac_cv_have_struct_buf=no
AC_TRY_COMPILE(
ac_cv_have_struct_buf=yes,)
]
)
+dnl CPPFLAGS="$save_CPPFLAGS"
AC_MSG_RESULT($ac_cv_have_struct_buf)
if test "$ac_cv_have_struct_buf" = yes; then
AC_DEFINE(HAVE_STRUCT_BUF)
fi
+;;
+esac
AC_CACHE_VAL(ac_cv_sockaddr_len,
panic("AFS open changed vnode!");
#endif
afs_BozonLock(&vc->pvnLock, vc);
- osi_FlushPages(vc);
+ osi_FlushPages(vc, ap->a_cred);
afs_BozonUnlock(&vc->pvnLock, vc);
AFS_GUNLOCK();
return error;
else
code=afs_close(avc, ap->a_fflag, &afs_osi_cred, ap->a_p);
afs_BozonLock(&avc->pvnLock, avc);
- osi_FlushPages(avc); /* hold bozon lock, but not basic vnode lock */
+ osi_FlushPages(avc, ap->a_cred); /* hold bozon lock, but not basic vnode lock */
afs_BozonUnlock(&avc->pvnLock, avc);
AFS_GUNLOCK();
#ifdef AFS_DARWIN14_ENV
struct vcache *avc=VTOAFS(ap->a_vp);
AFS_GLOCK();
afs_BozonLock(&avc->pvnLock, avc);
- osi_FlushPages(avc); /* hold bozon lock, but not basic vnode lock */
+ osi_FlushPages(avc, ap->a_cred); /* hold bozon lock, but not basic vnode lock */
code=afs_read(avc, ap->a_uio, ap->a_cred, 0, 0, 0);
afs_BozonUnlock(&avc->pvnLock, avc);
AFS_GUNLOCK();
aiov.iov_base = (caddr_t)ioaddr;
AFS_GLOCK();
afs_BozonLock(&tvc->pvnLock, tvc);
- osi_FlushPages(tvc); /* hold bozon lock, but not basic vnode lock */
+ osi_FlushPages(tvc, ap->a_cred); /* hold bozon lock, but not basic vnode lock */
code=afs_read(tvc, uio, cred, 0, 0, 0);
if (code == 0) {
ObtainWriteLock(&tvc->lock, 2);
void *object;
AFS_GLOCK();
afs_BozonLock(&avc->pvnLock, avc);
- osi_FlushPages(avc); /* hold bozon lock, but not basic vnode lock */
+ osi_FlushPages(avc, ap->a_cred); /* hold bozon lock, but not basic vnode lock */
if (UBCINFOEXISTS(ap->a_vp))
ubc_clean(ap->a_vp, 1);
if (UBCINFOEXISTS(ap->a_vp))
AFS_GLOCK();
afs_BozonLock(&tvc->pvnLock, tvc);
- osi_FlushPages(tvc); /* hold bozon lock, but not basic vnode lock */
+ osi_FlushPages(tvc, ap->a_cred); /* hold bozon lock, but not basic vnode lock */
ObtainWriteLock(&tvc->lock, 1);
afs_FakeOpen(tvc);
ReleaseWriteLock(&tvc->lock);
extern void osi_VM_Truncate(struct vcache *avc, int alen, struct AFS_UCRED *acred);
extern void osi_VM_TryReclaim(struct vcache *avc, int *slept);
extern void osi_VM_NukePages(struct vnode *vp, off_t offset, off_t size);
-extern int osi_VM_Setup(struct vcache *avc);
+extern int osi_VM_Setup(struct vcache *avc, int force);
#ifdef AFS_SUN5_ENV
extern int osi_VM_GetDownD(struct vcache *avc, struct dcache *adc);