Changeset View
Changeset View
Standalone View
Standalone View
sys/vm/vm_page.c
Show First 20 Lines • Show All 4,624 Lines • ▼ Show 20 Lines | if ((m = vm_page_lookup(object, pindex)) != NULL) { | ||||
} | } | ||||
if (vm_page_all_valid(m)) | if (vm_page_all_valid(m)) | ||||
goto out; | goto out; | ||||
if ((allocflags & VM_ALLOC_NOCREAT) != 0) { | if ((allocflags & VM_ALLOC_NOCREAT) != 0) { | ||||
vm_page_busy_release(m); | vm_page_busy_release(m); | ||||
*mp = NULL; | *mp = NULL; | ||||
return (VM_PAGER_FAIL); | return (VM_PAGER_FAIL); | ||||
} | } | ||||
} else if ((allocflags & VM_ALLOC_NOCREAT) != 0) { | } else if ((allocflags & (VM_ALLOC_NOZERO | VM_ALLOC_NOCREAT)) != 0) { | ||||
*mp = NULL; | *mp = NULL; | ||||
return (VM_PAGER_FAIL); | return (VM_PAGER_FAIL); | ||||
} else if ((m = vm_page_alloc(object, pindex, pflags)) == NULL) { | } else if ((m = vm_page_alloc(object, pindex, pflags)) == NULL) { | ||||
goto retrylookup; | goto retrylookup; | ||||
} | } | ||||
vm_page_assert_xbusied(m); | vm_page_assert_xbusied(m); | ||||
if (vm_pager_has_page(object, pindex, NULL, &after)) { | if (vm_pager_has_page(object, pindex, NULL, &after)) { | ||||
▲ Show 20 Lines • Show All 899 Lines • Show Last 20 Lines |