diff options
Diffstat (limited to 'sys/vm/vnode_pager.c')
-rw-r--r-- | sys/vm/vnode_pager.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c index 8115908..60890e1 100644 --- a/sys/vm/vnode_pager.c +++ b/sys/vm/vnode_pager.c @@ -175,19 +175,20 @@ vnode_pager_alloc(void *handle, vm_ooffset_t size, vm_prot_t prot, return (object); } +/* + * The object must be locked. + */ static void vnode_pager_dealloc(object) vm_object_t object; { struct vnode *vp = object->handle; - GIANT_REQUIRED; if (vp == NULL) panic("vnode_pager_dealloc: pager already dealloced"); - VM_OBJECT_LOCK(object); + VM_OBJECT_LOCK_ASSERT(object, MA_OWNED); vm_object_pip_wait(object, "vnpdea"); - VM_OBJECT_UNLOCK(object); object->handle = NULL; object->type = OBJT_DEAD; |