diff options
Diffstat (limited to 'sys/vm/vm_fault.c')
| -rw-r--r-- | sys/vm/vm_fault.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/sys/vm/vm_fault.c b/sys/vm/vm_fault.c index 7d67efad58b3..a14512d8a49c 100644 --- a/sys/vm/vm_fault.c +++ b/sys/vm/vm_fault.c @@ -66,7 +66,7 @@ * any improvements or extensions that they make and grant Carnegie the * rights to redistribute these changes. * - * $Id: vm_fault.c,v 1.70 1997/08/25 22:15:19 bde Exp $ + * $Id: vm_fault.c,v 1.71 1997/09/01 03:17:15 bde Exp $ */ /* @@ -202,7 +202,8 @@ RetryFault:; * to COW .text. We simply keep .text from ever being COW'ed * and take the heat that one cannot debug wired .text sections. */ - if (((fault_flags & VM_FAULT_WIRE_MASK) == VM_FAULT_USER_WIRE) && (entry->eflags & MAP_ENTRY_NEEDS_COPY)) { + if (((fault_flags & VM_FAULT_WIRE_MASK) == VM_FAULT_USER_WIRE) && + (entry->eflags & MAP_ENTRY_NEEDS_COPY)) { if(entry->protection & VM_PROT_WRITE) { int tresult; vm_map_lookup_done(map, entry); @@ -222,6 +223,10 @@ RetryFault:; } vp = vnode_pager_lock(first_object); + if ((fault_type & VM_PROT_WRITE) && + (first_object->type == OBJT_VNODE)) { + vm_freeze_copyopts(first_object, first_pindex, first_pindex + 1); + } lookup_still_valid = TRUE; |
