From 7a52ad11f4d64ed7708bcd7e0b7b336d89b2eb2d Mon Sep 17 00:00:00 2001 From: kib Date: Sun, 8 Feb 2009 19:41:08 +0000 Subject: 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 --- sys/vm/vm_map.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/vm/vm_map.c b/sys/vm/vm_map.c index 18ba489..e5c601c 100644 --- a/sys/vm/vm_map.c +++ b/sys/vm/vm_map.c @@ -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, -- cgit v1.1