diff options
| -rw-r--r-- | sys/vm/vm_fault.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c index 8b212f3f84e5..da15ed5f4254 100644 --- a/sys/vm/vm_fault.c +++ b/sys/vm/vm_fault.c @@ -2018,6 +2018,13 @@ again: VM_OBJECT_WLOCK(dst_object); goto again; } + + /* + * See the comment in vm_fault_cow(). + */ + if (src_object == dst_object && + (object->flags & OBJ_ONEMAPPING) == 0) + pmap_remove_all(src_m); pmap_copy_page(src_m, dst_m); VM_OBJECT_RUNLOCK(object); dst_m->dirty = dst_m->valid = src_m->valid; |
