diff options
Diffstat (limited to 'sys/vm/swap_pager.c')
-rw-r--r-- | sys/vm/swap_pager.c | 28 |
1 files changed, 27 insertions, 1 deletions
diff --git a/sys/vm/swap_pager.c b/sys/vm/swap_pager.c index 4feebd5..37427ec 100644 --- a/sys/vm/swap_pager.c +++ b/sys/vm/swap_pager.c @@ -39,7 +39,7 @@ * from: Utah $Hdr: swap_pager.c 1.4 91/04/30$ * * @(#)swap_pager.c 8.9 (Berkeley) 3/21/94 - * $Id: swap_pager.c,v 1.65 1996/05/03 21:01:47 phk Exp $ + * $Id: swap_pager.c,v 1.66 1996/05/18 03:37:32 dyson Exp $ */ /* @@ -438,6 +438,32 @@ swap_pager_freespace(object, start, size) splx(s); } +/* + * same as freespace, but don't free, just force a DMZ next time + */ +void +swap_pager_dmzspace(object, start, size) + vm_object_t object; + vm_pindex_t start; + vm_size_t size; +{ + vm_pindex_t i; + int s; + + s = splbio(); + for (i = start; i < start + size; i += 1) { + int valid; + daddr_t *addr = swap_pager_diskaddr(object, i, &valid); + + if (addr && *addr != SWB_EMPTY) { + if (valid) { + swap_pager_setvalid(object, i, 0); + } + } + } + splx(s); +} + static void swap_pager_free_swap(object) vm_object_t object; |