lockparent = flags & LOCKPARENT;
wantparent = flags & (LOCKPARENT | WANTPARENT);
-#ifdef AFS_FBSD80_ENV
cnp->cn_flags |= MPSAFE; /* steel */
-#endif
#ifndef AFS_FBSD70_ENV
if (flags & ISDOTDOT)
* Read operation filled a partial page.
*/
m->valid = 0;
- vm_page_set_valid(m, 0, size - toff);
-#ifndef AFS_FBSD80_ENV
- vm_page_undirty(m);
-#else
+ vm_page_set_validclean(m, 0, size - toff);
KASSERT(m->dirty == 0, ("afs_getpages: page %p is dirty", m));
-#endif
}
if (i != ap->a_reqpage) {
struct vcache *vcp;
#ifndef AFS_FBSD80_ENV
struct thread *p = ap->a_cnp->cn_thread;
-#end
+#endif
GETNAME();
#ifdef DIAGNOSTIC
return error;
}
-extern int prtactive;
-
int
afs_vop_inactive(ap)
struct vop_inactive_args /* {
{
struct vnode *vp = ap->a_vp;
- if (prtactive && vp->v_usecount != 0)
- vprint("afs_vop_inactive(): pushing active", vp);
-
AFS_GLOCK();
afs_InactiveVCache(VTOAFS(vp), 0); /* decrs ref counts */
AFS_GUNLOCK();
ObtainWriteLock(&afs_xvcache, 901);
/* reclaim the vnode and the in-memory vcache, but keep the on-disk vcache */
code = afs_FlushVCache(avc, &slept);
+
+ if (avc->f.states & CVInit) {
+ avc->f.states &= ~CVInit;
+ afs_osi_Wakeup(&avc->f.states);
+ }
+
if (!haveVlock)
ReleaseWriteLock(&afs_xvcache);
if (!haveGlock)