diff options
author | alc <alc@FreeBSD.org> | 2006-10-22 21:18:48 +0000 |
---|---|---|
committer | alc <alc@FreeBSD.org> | 2006-10-22 21:18:48 +0000 |
commit | 5d9c66a3f8fe76b65b02406c551668f4b645abf5 (patch) | |
tree | 43e03c6bedc6aa126229bf727c93fe15277a8a53 /sys/vm/vm_page.c | |
parent | cc74fcabb418a714919dc9abc75e57e47b0a058c (diff) | |
download | FreeBSD-src-5d9c66a3f8fe76b65b02406c551668f4b645abf5.zip FreeBSD-src-5d9c66a3f8fe76b65b02406c551668f4b645abf5.tar.gz |
The page queues lock is no longer required by vm_page_busy() or
vm_page_wakeup(). Reduce or eliminate its use accordingly.
Diffstat (limited to 'sys/vm/vm_page.c')
-rw-r--r-- | sys/vm/vm_page.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/sys/vm/vm_page.c b/sys/vm/vm_page.c index 0c971c5..c191d60 100644 --- a/sys/vm/vm_page.c +++ b/sys/vm/vm_page.c @@ -1472,12 +1472,13 @@ retrylookup: return (NULL); goto retrylookup; } else { - vm_page_lock_queues(); - if (allocflags & VM_ALLOC_WIRED) + if ((allocflags & VM_ALLOC_WIRED) != 0) { + vm_page_lock_queues(); vm_page_wire(m); + vm_page_unlock_queues(); + } if ((allocflags & VM_ALLOC_NOBUSY) == 0) vm_page_busy(m); - vm_page_unlock_queues(); return (m); } } |