summaryrefslogtreecommitdiffstats
path: root/sys/vm/phys_pager.c
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2015-06-06 20:37:40 +0000
committerjhb <jhb@FreeBSD.org>2015-06-06 20:37:40 +0000
commit51c06666a902e195ca88afc6b333748c1d7ad639 (patch)
treed1201d664486dbe0b7e77499d73ddb7f4ac6903a /sys/vm/phys_pager.c
parentac9f7bc3c6a3d76b846574698062aab3d7b860f5 (diff)
downloadFreeBSD-src-51c06666a902e195ca88afc6b333748c1d7ad639.zip
FreeBSD-src-51c06666a902e195ca88afc6b333748c1d7ad639.tar.gz
MFC 261811,282660,282706:
Place VM objects on the object list when created and never remove them. 261811: Fix function name in KASSERT(). 282660: Place VM objects on the object list when created and never remove them. This is ok since objects come from a NOFREE zone and allows objects to be locked while traversing the object list without triggering a LOR. Ensure that objects on the list are marked DEAD while free or stillborn, and that they have a refcount of zero. This required updating most of the pagers to explicitly mark an object as dead when deallocating it. (Only the vnode pager did this previously.) 282706: Satisfy vm_object uma zone destructor requirements after r282660 when vnode object creation raced.
Diffstat (limited to 'sys/vm/phys_pager.c')
-rw-r--r--sys/vm/phys_pager.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/vm/phys_pager.c b/sys/vm/phys_pager.c
index 9e98006..885a451 100644
--- a/sys/vm/phys_pager.c
+++ b/sys/vm/phys_pager.c
@@ -131,6 +131,8 @@ phys_pager_dealloc(vm_object_t object)
mtx_unlock(&phys_pager_mtx);
VM_OBJECT_WLOCK(object);
}
+ object->handle = NULL;
+ object->type = OBJT_DEAD;
}
/*
OpenPOWER on IntegriCloud