From f43ec146519d9362b870b6c1d4c8931e19149bc2 Mon Sep 17 00:00:00 2001 From: "Michael I. Bushnell" Date: Tue, 26 Mar 1996 21:02:50 +0000 Subject: (_pager_do_write_request): Delete any corresponding anticipation before starting pageout. --- libpager/data-return.c | 8 ++++++++ 1 file changed, 8 insertions(+) (limited to 'libpager/data-return.c') diff --git a/libpager/data-return.c b/libpager/data-return.c index 709f9de2..5d64fe41 100644 --- a/libpager/data-return.c +++ b/libpager/data-return.c @@ -45,6 +45,7 @@ _pager_do_write_request (mach_port_t object, struct lock_list *next;} *lock_list, *ll; int wakeup; int omitdata = 0; + struct anticipation *ant; p = ports_lookup_port (0, object, _pager_class); if (!p) @@ -86,6 +87,13 @@ _pager_do_write_request (mach_port_t object, _pager_block_termination (p); /* until we are done with the pagemap when the write completes. */ + ant = _pager_check_anticitpations (p, length, offset); + if (ant) + { + vm_deallocate (mach_task_self (), ant->address, ant->length); + free (ant); + } + _pager_pagemap_resize (p, offset + length); pm_entries = &p->pagemap[offset / __vm_page_size]; -- cgit v1.2.3