summaryrefslogtreecommitdiffstats
path: root/sys/vm
diff options
context:
space:
mode:
authoralc <alc@FreeBSD.org>2007-02-18 05:54:42 +0000
committeralc <alc@FreeBSD.org>2007-02-18 05:54:42 +0000
commitc0ed1b65cf97d4a558e1277b708beebf95b6516d (patch)
tree173211f941a4768b93b517757e836e844ddd7859 /sys/vm
parent6a5d54ffd20da2b170bed379fd7faebe76a1a71a (diff)
downloadFreeBSD-src-c0ed1b65cf97d4a558e1277b708beebf95b6516d.zip
FreeBSD-src-c0ed1b65cf97d4a558e1277b708beebf95b6516d.tar.gz
Enable vm_page_free() and vm_page_free_zero() to be called on some pages
without the page queues lock being held, specifically, pages that are not contained in a vm object and not a member of a page queue.
Diffstat (limited to 'sys/vm')
-rw-r--r--sys/vm/vm_page.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c
index 6b74d90..3badc5b 100644
--- a/sys/vm/vm_page.c
+++ b/sys/vm/vm_page.c
@@ -479,7 +479,8 @@ vm_page_unhold(vm_page_t mem)
void
vm_page_free(vm_page_t m)
{
- vm_page_flag_clear(m, PG_ZERO);
+
+ m->flags &= ~PG_ZERO;
vm_page_free_toq(m);
}
@@ -491,7 +492,8 @@ vm_page_free(vm_page_t m)
void
vm_page_free_zero(vm_page_t m)
{
- vm_page_flag_set(m, PG_ZERO);
+
+ m->flags |= PG_ZERO;
vm_page_free_toq(m);
}
OpenPOWER on IntegriCloud