Changeset View
Changeset View
Standalone View
Standalone View
head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_vnops.c
Show First 20 Lines • Show All 420 Lines • ▼ Show 20 Lines | if ((pp = vm_page_lookup(obj, OFF_TO_IDX(start))) != NULL && | ||||
vm_page_reference(pp); | vm_page_reference(pp); | ||||
vm_page_lock(pp); | vm_page_lock(pp); | ||||
zfs_vmobject_wunlock(obj); | zfs_vmobject_wunlock(obj); | ||||
vm_page_busy_sleep(pp, "zfsmwb", true); | vm_page_busy_sleep(pp, "zfsmwb", true); | ||||
zfs_vmobject_wlock(obj); | zfs_vmobject_wlock(obj); | ||||
continue; | continue; | ||||
} | } | ||||
vm_page_sbusy(pp); | vm_page_sbusy(pp); | ||||
} else if (pp == NULL) { | |||||
pp = vm_page_alloc(obj, OFF_TO_IDX(start), | |||||
VM_ALLOC_SYSTEM | VM_ALLOC_IFCACHED | | |||||
VM_ALLOC_SBUSY); | |||||
} else { | } else { | ||||
ASSERT(pp != NULL && !pp->valid); | ASSERT(pp != NULL && !pp->valid); | ||||
pp = NULL; | pp = NULL; | ||||
} | } | ||||
if (pp != NULL) { | if (pp != NULL) { | ||||
ASSERT3U(pp->valid, ==, VM_PAGE_BITS_ALL); | ASSERT3U(pp->valid, ==, VM_PAGE_BITS_ALL); | ||||
vm_object_pip_add(obj, 1); | vm_object_pip_add(obj, 1); | ||||
▲ Show 20 Lines • Show All 5,638 Lines • Show Last 20 Lines |