Page MenuHomeFreeBSD

D35471.1785291098.diff
No OneTemporary

Size
589 B
Referenced Files
None
Subscribers
None

D35471.1785291098.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
Wed, Jul 29, 2:11 AM (21 h, 18 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
29299563
Default Alt Text
D35471.1785291098.diff (589 B)

Event Timeline