aboutsummaryrefslogtreecommitdiff
path: root/sys/fs
diff options
context:
space:
mode:
authorAlan Cox <alc@FreeBSD.org>2002-07-27 05:08:49 +0000
committerAlan Cox <alc@FreeBSD.org>2002-07-27 05:08:49 +0000
commiteb13174a6b6be159823a147ca01a731b0a75cb3d (patch)
tree4c6b689d465f713e4b8133eb38fc16ae18dfebaa /sys/fs
parent9d522888604b185639d341fe11475b3b9bfdcb91 (diff)
downloadsrc-eb13174a6b6be159823a147ca01a731b0a75cb3d.tar.gz
src-eb13174a6b6be159823a147ca01a731b0a75cb3d.zip
o Lock page queue accesses by vm_page_activate() and vm_page_deactivate().
Notes
Notes: svn path=/head/; revision=100737
Diffstat (limited to 'sys/fs')
-rw-r--r--sys/fs/specfs/spec_vnops.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/fs/specfs/spec_vnops.c b/sys/fs/specfs/spec_vnops.c
index f559b796a438..4ccb2db4c7fe 100644
--- a/sys/fs/specfs/spec_vnops.c
+++ b/sys/fs/specfs/spec_vnops.c
@@ -760,8 +760,8 @@ spec_getpages(ap)
}
pmap_qremove(kva, pcount);
-
gotreqpage = 0;
+ vm_page_lock_queues();
for (i = 0, toff = 0; i < pcount; i++, toff = nextoff) {
nextoff = toff + PAGE_SIZE;
m = ap->a_m[i];
@@ -812,6 +812,7 @@ spec_getpages(ap)
vm_page_zero_invalid(m, FALSE);
}
}
+ vm_page_unlock_queues();
if (!gotreqpage) {
m = ap->a_m[ap->a_reqpage];
printf(