Access vmobject via the bufobj instead of the vnode

This commit is contained in:
Poul-Henning Kamp 2005-02-07 10:04:06 +00:00
parent 7ee4eb6192
commit b9489a449c

View File

@ -979,24 +979,24 @@ vinvalbuf(vp, flags, td, slpflag, slptimeo)
*/
do {
bufobj_wwait(bo, 0, 0);
VI_UNLOCK(vp);
if (vp->v_object != NULL) {
VM_OBJECT_LOCK(vp->v_object);
vm_object_pip_wait(vp->v_object, "vnvlbx");
VM_OBJECT_UNLOCK(vp->v_object);
BO_UNLOCK(bo);
if (bo->bo_object != NULL) {
VM_OBJECT_LOCK(bo->bo_object);
vm_object_pip_wait(bo->bo_object, "vnvlbx");
VM_OBJECT_UNLOCK(bo->bo_object);
}
VI_LOCK(vp);
BO_LOCK(bo);
} while (bo->bo_numoutput > 0);
VI_UNLOCK(vp);
BO_UNLOCK(bo);
/*
* Destroy the copy in the VM cache, too.
*/
if (vp->v_object != NULL) {
VM_OBJECT_LOCK(vp->v_object);
vm_object_page_remove(vp->v_object, 0, 0,
if (bo->bo_object != NULL) {
VM_OBJECT_LOCK(bo->bo_object);
vm_object_page_remove(bo->bo_object, 0, 0,
(flags & V_SAVE) ? TRUE : FALSE);
VM_OBJECT_UNLOCK(vp->v_object);
VM_OBJECT_UNLOCK(bo->bo_object);
}
#ifdef INVARIANTS