Page MenuHomeFreeBSD

D35471.diff
No OneTemporary

D35471.diff

diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c
--- a/sys/vm/vm_fault.c
+++ b/sys/vm/vm_fault.c
@@ -2099,8 +2099,15 @@
goto again;
}
pmap_copy_page(src_m, dst_m);
- VM_OBJECT_RUNLOCK(object);
+
+ /*
+ * The object lock does not guarantee that "src_m" will
+ * transition from invalid to valid, but it does ensure
+ * that "src_m" will not transition from valid to
+ * invalid.
+ */
dst_m->dirty = dst_m->valid = src_m->valid;
+ VM_OBJECT_RUNLOCK(object);
} else {
dst_m = src_m;
if (vm_page_busy_acquire(dst_m, VM_ALLOC_WAITFAIL) == 0)

File Metadata

Mime Type
text/plain
Expires
Mon, Jan 27, 4:12 PM (6 h, 18 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16200636
Default Alt Text
D35471.diff (589 B)

Event Timeline