diff options
author | peter <peter@FreeBSD.org> | 2001-11-16 02:25:29 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2001-11-16 02:25:29 +0000 |
commit | 56c06d9e26585bede262d085e21ed714d06df225 (patch) | |
tree | 060ee396120ed2f25279d14ea98039a993b83816 /sys/ia64 | |
parent | 5373ee2f4e0d354a821d3235913e4f95b645d6c2 (diff) | |
download | FreeBSD-src-56c06d9e26585bede262d085e21ed714d06df225.zip FreeBSD-src-56c06d9e26585bede262d085e21ed714d06df225.tar.gz |
Merge rev 1.202 from i386/pmap.c (back in 1998 by John Dyson):
Make flushing dirty pages work correctly on filesystems that
unexpectedly do not complete writes even with sync I/O requests.
This should help the behavior of mmaped files when using
softupdates (and perhaps in other circumstances also.)
Diffstat (limited to 'sys/ia64')
-rw-r--r-- | sys/ia64/ia64/pmap.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/ia64/ia64/pmap.c b/sys/ia64/ia64/pmap.c index 3385c4d..31728f9 100644 --- a/sys/ia64/ia64/pmap.c +++ b/sys/ia64/ia64/pmap.c @@ -1887,6 +1887,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offset_t addr, break; } if (((p->valid & VM_PAGE_BITS_ALL) == VM_PAGE_BITS_ALL) && + (p->busy == 0) && (p->flags & (PG_BUSY | PG_FICTITIOUS)) == 0) { if ((p->queue - p->pc) == PQ_CACHE) vm_page_deactivate(p); @@ -1914,6 +1915,7 @@ pmap_object_init_pt(pmap_t pmap, vm_offset_t addr, p = vm_page_lookup(object, tmpidx + pindex); if (p && ((p->valid & VM_PAGE_BITS_ALL) == VM_PAGE_BITS_ALL) && + (p->busy == 0) && (p->flags & (PG_BUSY | PG_FICTITIOUS)) == 0) { if ((p->queue - p->pc) == PQ_CACHE) vm_page_deactivate(p); @@ -2005,6 +2007,7 @@ pmap_prefault(pmap, addra, entry) break; if (((m->valid & VM_PAGE_BITS_ALL) == VM_PAGE_BITS_ALL) && + (m->busy == 0) && (m->flags & (PG_BUSY | PG_FICTITIOUS)) == 0) { if ((m->queue - m->pc) == PQ_CACHE) { |