Changeset View
Changeset View
Standalone View
Standalone View
sys/vm/vnode_pager.c
Show First 20 Lines • Show All 206 Lines • ▼ Show 20 Lines | if (obj->ref_count == 0) { | ||||
/* | /* | ||||
* Clean pages and flush buffers. | * Clean pages and flush buffers. | ||||
*/ | */ | ||||
vm_object_page_clean(obj, 0, 0, OBJPC_SYNC); | vm_object_page_clean(obj, 0, 0, OBJPC_SYNC); | ||||
VM_OBJECT_WUNLOCK(obj); | VM_OBJECT_WUNLOCK(obj); | ||||
vinvalbuf(vp, V_SAVE, 0, 0); | vinvalbuf(vp, V_SAVE, 0, 0); | ||||
BO_LOCK(&vp->v_bufobj); | BO_LOCK(vp2bo(vp)); | ||||
vp->v_bufobj.bo_flag |= BO_DEAD; | vp2bo(vp)->bo_flag |= BO_DEAD; | ||||
BO_UNLOCK(&vp->v_bufobj); | BO_UNLOCK(vp2bo(vp)); | ||||
VM_OBJECT_WLOCK(obj); | VM_OBJECT_WLOCK(obj); | ||||
vm_object_terminate(obj); | vm_object_terminate(obj); | ||||
} else { | } else { | ||||
/* | /* | ||||
* Woe to the process that tries to page now :-). | * Woe to the process that tries to page now :-). | ||||
*/ | */ | ||||
vm_pager_deallocate(obj); | vm_pager_deallocate(obj); | ||||
▲ Show 20 Lines • Show All 1,379 Lines • Show Last 20 Lines |