diff options
author | alc <alc@FreeBSD.org> | 2002-07-27 05:08:49 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2002-07-27 05:08:49 +0000 |
commit | 066f58464f971824c772c910c9c4455432cfc622 (patch) | |
tree | 4c6b689d465f713e4b8133eb38fc16ae18dfebaa /sys | |
parent | abf1927809587298b86fedccf6da4205e2b69bfc (diff) | |
download | FreeBSD-src-066f58464f971824c772c910c9c4455432cfc622.zip FreeBSD-src-066f58464f971824c772c910c9c4455432cfc622.tar.gz |
o Lock page queue accesses by vm_page_activate() and vm_page_deactivate().
Diffstat (limited to 'sys')
-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 f559b79..4ccb2db 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( |