From acc4c54fc554d034a6cffaf5db33b3b358447060 Mon Sep 17 00:00:00 2001 From: pjd Date: Fri, 20 Apr 2007 19:49:20 +0000 Subject: Don't reinvent vm_page_grab(). Reviewed by: ups --- sys/kern/uipc_syscalls.c | 26 +++----------------------- 1 file changed, 3 insertions(+), 23 deletions(-) (limited to 'sys') diff --git a/sys/kern/uipc_syscalls.c b/sys/kern/uipc_syscalls.c index d9e9f10..53de5bc 100644 --- a/sys/kern/uipc_syscalls.c +++ b/sys/kern/uipc_syscalls.c @@ -2038,35 +2038,15 @@ retry_space: VM_OBJECT_UNLOCK(obj); break; } -retry_lookup: + /* * Attempt to look up the page. * Allocate if not found or * wait and loop if busy. */ pindex = OFF_TO_IDX(off); - pg = vm_page_lookup(obj, pindex); - if (pg == NULL) { - pg = vm_page_alloc(obj, pindex, - VM_ALLOC_NOBUSY | VM_ALLOC_NORMAL | - VM_ALLOC_WIRED); - if (pg == NULL) { - VM_OBJECT_UNLOCK(obj); - VM_WAIT; - VM_OBJECT_LOCK(obj); - goto retry_lookup; - } - } else if (vm_page_sleep_if_busy(pg, TRUE, "sfpbsy")) - goto retry_lookup; - else { - /* - * Wire the page so it does not get - * ripped out from under us. - */ - vm_page_lock_queues(); - vm_page_wire(pg); - vm_page_unlock_queues(); - } + pg = vm_page_grab(obj, pindex, VM_ALLOC_NOBUSY | + VM_ALLOC_NORMAL | VM_ALLOC_WIRED | VM_ALLOC_RETRY); /* * Check if page is valid for what we need, -- cgit v1.1