Fix two problems:

The pmap_remove in vm_map_clean incorrectly unmapped the entire
	map entry.
	The new vm_map_simplify_entry code had an error (the offset
	of the combined map entry was not set correctly.)
Submitted by:	Alan Cox <alc@cs.rice.edu>
This commit is contained in:
John Dyson 1996-03-09 06:52:05 +00:00
parent 65bc79b85f
commit 67cc64f4c7

View File

@ -61,7 +61,7 @@
* any improvements or extensions that they make and grant Carnegie the
* rights to redistribute these changes.
*
* $Id: vm_map.c,v 1.35 1996/03/03 18:53:10 peter Exp $
* $Id: vm_map.c,v 1.36 1996/03/04 02:04:24 dyson Exp $
*/
/*
@ -872,6 +872,7 @@ vm_map_simplify_entry(map, entry)
prev->wired_count == 0) {
vm_map_entry_unlink(map, prev);
entry->start = prev->start;
entry->offset = prev->offset;
vm_object_deallocate(prev->object.vm_object);
vm_map_entry_dispose(map, prev);
esize = entry->end - entry->start;
@ -1547,7 +1548,7 @@ vm_map_clean(map, start, end, syncio, invalidate)
}
if (invalidate)
pmap_remove(vm_map_pmap(map), current->start,
current->end);
current->start + size);
if (object && (object->type == OBJT_VNODE)) {
/*
* Flush pages if writing is allowed. XXX should we continue