diff options
author | Michael I. Bushnell <mib@gnu.org> | 1996-03-26 21:02:50 +0000 |
---|---|---|
committer | Michael I. Bushnell <mib@gnu.org> | 1996-03-26 21:02:50 +0000 |
commit | f43ec146519d9362b870b6c1d4c8931e19149bc2 (patch) | |
tree | e77aa90baff732ad1f5266be273a4be627f51afa /libpager | |
parent | 7681999a97a90ad386b06a47b1336734c0d3af99 (diff) |
(_pager_do_write_request): Delete any corresponding anticipation
before starting pageout.
Diffstat (limited to 'libpager')
-rw-r--r-- | libpager/data-return.c | 8 |
1 files changed, 8 insertions, 0 deletions
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]; |