summaryrefslogtreecommitdiffstats
path: root/sys/alpha
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2001-11-16 02:25:29 +0000
committerpeter <peter@FreeBSD.org>2001-11-16 02:25:29 +0000
commit56c06d9e26585bede262d085e21ed714d06df225 (patch)
tree060ee396120ed2f25279d14ea98039a993b83816 /sys/alpha
parent5373ee2f4e0d354a821d3235913e4f95b645d6c2 (diff)
downloadFreeBSD-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/alpha')
-rw-r--r--sys/alpha/alpha/pmap.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/alpha/alpha/pmap.c b/sys/alpha/alpha/pmap.c
index 2ec573c..f178566 100644
--- a/sys/alpha/alpha/pmap.c
+++ b/sys/alpha/alpha/pmap.c
@@ -2476,6 +2476,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);
@@ -2503,6 +2504,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);
@@ -2597,6 +2599,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) {
OpenPOWER on IntegriCloud