diff options
author | alc <alc@FreeBSD.org> | 2004-02-22 03:36:51 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2004-02-22 03:36:51 +0000 |
commit | 28e2e6f950d1ba5f61960c48a265075cb12ef497 (patch) | |
tree | 26a8c65b8c2187d2630c7d4fccd0d88f09c5b819 /sys | |
parent | 6d00d752a240fbb14fdf51e256ce843e61cb43c9 (diff) | |
download | FreeBSD-src-28e2e6f950d1ba5f61960c48a265075cb12ef497.zip FreeBSD-src-28e2e6f950d1ba5f61960c48a265075cb12ef497.tar.gz |
Correct a long-standing race condition in vm_object_page_remove() that
could result in a dirty page being unintentionally freed.
Reviewed by: tegge
MFC after: 7 days
Diffstat (limited to 'sys')
-rw-r--r-- | sys/vm/vm_object.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/vm/vm_object.c b/sys/vm/vm_object.c index 052f5fe..116a075 100644 --- a/sys/vm/vm_object.c +++ b/sys/vm/vm_object.c @@ -1797,7 +1797,7 @@ again: if (vm_page_sleep_if_busy(p, TRUE, "vmopar")) goto again; if (clean_only && p->valid) { - vm_page_test_dirty(p); + pmap_page_protect(p, VM_PROT_READ | VM_PROT_EXECUTE); if (p->valid & p->dirty) continue; } |