Author: kib
Date: Sun Feb  8 19:41:08 2009
New Revision: 188320
URL: http://svn.freebsd.org/changeset/base/188320

Log:
  Do not leak the MAP_ENTRY_IN_TRANSITION flag when copying map entry
  on fork. Otherwise, copied entry cannot be removed in the child map.
  
  Reviewed by:  tegge
  MFC after:    2 weeks

Modified:
  head/sys/vm/vm_map.c

Modified: head/sys/vm/vm_map.c
==============================================================================
--- head/sys/vm/vm_map.c        Sun Feb  8 19:37:01 2009        (r188319)
+++ head/sys/vm/vm_map.c        Sun Feb  8 19:41:08 2009        (r188320)
@@ -2738,7 +2738,8 @@ vmspace_fork(struct vmspace *vm1)
                         */
                        new_entry = vm_map_entry_create(new_map);
                        *new_entry = *old_entry;
-                       new_entry->eflags &= ~MAP_ENTRY_USER_WIRED;
+                       new_entry->eflags &= ~(MAP_ENTRY_USER_WIRED |
+                           MAP_ENTRY_IN_TRANSITION);
                        new_entry->wired_count = 0;
 
                        /*
@@ -2764,7 +2765,8 @@ vmspace_fork(struct vmspace *vm1)
                         */
                        new_entry = vm_map_entry_create(new_map);
                        *new_entry = *old_entry;
-                       new_entry->eflags &= ~MAP_ENTRY_USER_WIRED;
+                       new_entry->eflags &= ~(MAP_ENTRY_USER_WIRED |
+                           MAP_ENTRY_IN_TRANSITION);
                        new_entry->wired_count = 0;
                        new_entry->object.vm_object = NULL;
                        vm_map_entry_link(new_map, new_map->header.prev,
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "[email protected]"

Reply via email to