diff options
author | alc <alc@FreeBSD.org> | 2002-07-13 23:55:30 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2002-07-13 23:55:30 +0000 |
commit | 5258ed77bb039f96f2310a4d4d549c2f2560557e (patch) | |
tree | 5f0dd6da95ac98d2f716fa3e723812525f13eecd /sys/vm/phys_pager.c | |
parent | 62f24912aa4d288ecd28ce105d18f1c93a271347 (diff) | |
download | FreeBSD-src-5258ed77bb039f96f2310a4d4d549c2f2560557e.zip FreeBSD-src-5258ed77bb039f96f2310a4d4d549c2f2560557e.tar.gz |
o Lock page queue accesses by vm_page_unmanage().
o Assert that the page queues lock is held in vm_page_unmanage().
Diffstat (limited to 'sys/vm/phys_pager.c')
-rw-r--r-- | sys/vm/phys_pager.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/sys/vm/phys_pager.c b/sys/vm/phys_pager.c index a93dda1..98c505c 100644 --- a/sys/vm/phys_pager.c +++ b/sys/vm/phys_pager.c @@ -147,7 +147,9 @@ phys_pager_getpages(vm_object_t object, vm_page_t *m, int count, int reqpage) vm_page_zero_fill(m[i]); vm_page_flag_set(m[i], PG_ZERO); /* Switch off pv_entries */ + vm_page_lock_queues(); vm_page_unmanage(m[i]); + vm_page_unlock_queues(); m[i]->valid = VM_PAGE_BITS_ALL; m[i]->dirty = 0; /* The requested page must remain busy, the others not. */ |