diff options
author | Alan Cox <alc@FreeBSD.org> | 2002-07-27 05:08:49 +0000 |
---|---|---|
committer | Alan Cox <alc@FreeBSD.org> | 2002-07-27 05:08:49 +0000 |
commit | eb13174a6b6be159823a147ca01a731b0a75cb3d (patch) | |
tree | 4c6b689d465f713e4b8133eb38fc16ae18dfebaa /sys/fs | |
parent | 9d522888604b185639d341fe11475b3b9bfdcb91 (diff) | |
download | src-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.c | 3 |
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( |