Changeset View
Changeset View
Standalone View
Standalone View
head/sys/vm/vm_page.c
Show First 20 Lines • Show All 4,633 Lines • ▼ Show 20 Lines | if ((m = *mp) != NULL) { | ||||
if (vm_page_all_valid(m)) { | if (vm_page_all_valid(m)) { | ||||
if ((allocflags & VM_ALLOC_WIRED) != 0) | if ((allocflags & VM_ALLOC_WIRED) != 0) | ||||
vm_page_wire(m); | vm_page_wire(m); | ||||
vm_page_grab_release(m, allocflags); | vm_page_grab_release(m, allocflags); | ||||
return (VM_PAGER_OK); | return (VM_PAGER_OK); | ||||
} | } | ||||
vm_page_busy_release(m); | vm_page_busy_release(m); | ||||
} | } | ||||
if ((allocflags & VM_ALLOC_NOCREAT) != 0) { | |||||
*mp = NULL; | |||||
return (VM_PAGER_FAIL); | |||||
} | |||||
VM_OBJECT_WLOCK(object); | VM_OBJECT_WLOCK(object); | ||||
error = vm_page_grab_valid(mp, object, pindex, allocflags); | error = vm_page_grab_valid(mp, object, pindex, allocflags); | ||||
VM_OBJECT_WUNLOCK(object); | VM_OBJECT_WUNLOCK(object); | ||||
return (error); | return (error); | ||||
} | } | ||||
/* | /* | ||||
▲ Show 20 Lines • Show All 800 Lines • Show Last 20 Lines |