Page MenuHomeFreeBSD

D25828.id74980.diff
No OneTemporary

D25828.id74980.diff

Index: sys/vm/vm_page.c
===================================================================
--- sys/vm/vm_page.c
+++ sys/vm/vm_page.c
@@ -1371,10 +1371,15 @@
KASSERT(vm_page_none_valid(m), ("page %p is valid", m));
KASSERT(!pmap_page_is_mapped(m), ("page %p is mapped", m));
- vm_page_assert_xbusied(m);
KASSERT(m->object != NULL, ("page %p has no object", m));
VM_OBJECT_ASSERT_WLOCKED(m->object);
+ /*
+ * We may be attempting to free the page as part of the handling for an
+ * I/O error, in which case the page was xbusied by a different thread.
+ */
+ vm_page_xbusy_claim(m);
+
/*
* If someone has wired this page while the object lock
* was not held, then the thread that unwires is responsible

File Metadata

Mime Type
text/plain
Expires
Tue, Apr 28, 8:07 PM (8 h, 58 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
32302884
Default Alt Text
D25828.id74980.diff (724 B)

Event Timeline