Lines Matching refs:object

88 static int vnode_pager_input_smlfs(vm_object_t object, vm_page_t m);
89 static int vnode_pager_input_old(vm_object_t object, vm_page_t m);
123 vm_object_t object; in vnode_create_vobject() local
130 while ((object = vp->v_object) != NULL) { in vnode_create_vobject()
131 VM_OBJECT_WLOCK(object); in vnode_create_vobject()
132 if (!(object->flags & OBJ_DEAD)) { in vnode_create_vobject()
133 VM_OBJECT_WUNLOCK(object); in vnode_create_vobject()
137 vm_object_set_flag(object, OBJ_DISCONNECTWNT); in vnode_create_vobject()
138 VM_OBJECT_SLEEP(object, object, PDROP | PVM, "vodead", 0); in vnode_create_vobject()
152 object = vnode_pager_alloc(vp, size, 0, 0, td->td_ucred); in vnode_create_vobject()
157 VM_OBJECT_WLOCK(object); in vnode_create_vobject()
158 object->ref_count--; in vnode_create_vobject()
159 VM_OBJECT_WUNLOCK(object); in vnode_create_vobject()
218 vm_object_t object; in vnode_pager_alloc() local
234 while ((object = vp->v_object) != NULL) { in vnode_pager_alloc()
235 VM_OBJECT_WLOCK(object); in vnode_pager_alloc()
236 if ((object->flags & OBJ_DEAD) == 0) in vnode_pager_alloc()
238 vm_object_set_flag(object, OBJ_DISCONNECTWNT); in vnode_pager_alloc()
239 VM_OBJECT_SLEEP(object, object, PDROP | PVM, "vadead", 0); in vnode_pager_alloc()
244 if (object == NULL) { in vnode_pager_alloc()
248 object = vm_object_allocate(OBJT_VNODE, OFF_TO_IDX(round_page(size))); in vnode_pager_alloc()
250 object->un_pager.vnp.vnp_size = size; in vnode_pager_alloc()
251 object->un_pager.vnp.writemappings = 0; in vnode_pager_alloc()
252 object->domain.dr_policy = vnode_domainset; in vnode_pager_alloc()
254 object->handle = handle; in vnode_pager_alloc()
261 VM_OBJECT_WLOCK(object); in vnode_pager_alloc()
262 KASSERT(object->ref_count == 1, in vnode_pager_alloc()
263 ("leaked ref %p %d", object, object->ref_count)); in vnode_pager_alloc()
264 object->type = OBJT_DEAD; in vnode_pager_alloc()
265 object->ref_count = 0; in vnode_pager_alloc()
266 VM_OBJECT_WUNLOCK(object); in vnode_pager_alloc()
267 vm_object_destroy(object); in vnode_pager_alloc()
270 vp->v_object = object; in vnode_pager_alloc()
273 object->ref_count++; in vnode_pager_alloc()
275 vm_object_color(object, 0); in vnode_pager_alloc()
277 VM_OBJECT_WUNLOCK(object); in vnode_pager_alloc()
280 return (object); in vnode_pager_alloc()
287 vnode_pager_dealloc(vm_object_t object) in vnode_pager_dealloc() argument
292 vp = object->handle; in vnode_pager_dealloc()
296 VM_OBJECT_ASSERT_WLOCKED(object); in vnode_pager_dealloc()
297 vm_object_pip_wait(object, "vnpdea"); in vnode_pager_dealloc()
298 refs = object->ref_count; in vnode_pager_dealloc()
300 object->handle = NULL; in vnode_pager_dealloc()
301 object->type = OBJT_DEAD; in vnode_pager_dealloc()
302 if (object->flags & OBJ_DISCONNECTWNT) { in vnode_pager_dealloc()
303 vm_object_clear_flag(object, OBJ_DISCONNECTWNT); in vnode_pager_dealloc()
304 wakeup(object); in vnode_pager_dealloc()
307 if (object->un_pager.vnp.writemappings > 0) { in vnode_pager_dealloc()
308 object->un_pager.vnp.writemappings = 0; in vnode_pager_dealloc()
326 VM_OBJECT_WUNLOCK(object); in vnode_pager_dealloc()
329 VM_OBJECT_WLOCK(object); in vnode_pager_dealloc()
333 vnode_pager_haspage(vm_object_t object, vm_pindex_t pindex, int *before, in vnode_pager_haspage() argument
336 struct vnode *vp = object->handle; in vnode_pager_haspage()
344 VM_OBJECT_ASSERT_WLOCKED(object); in vnode_pager_haspage()
355 if (IDX_TO_OFF(pindex) >= object->un_pager.vnp.vnp_size) in vnode_pager_haspage()
367 VM_OBJECT_WUNLOCK(object); in vnode_pager_haspage()
369 VM_OBJECT_WLOCK(object); in vnode_pager_haspage()
388 roundup2(object->size, pagesperblock), in vnode_pager_haspage()
391 (uintmax_t )object->size)); in vnode_pager_haspage()
394 if (pindex + *after >= object->size) in vnode_pager_haspage()
395 *after = object->size - 1 - pindex; in vnode_pager_haspage()
420 vm_object_t object; in vnode_pager_setsize() local
424 if ((object = vp->v_object) == NULL) in vnode_pager_setsize()
427 VM_OBJECT_WLOCK(object); in vnode_pager_setsize()
428 if (object->type == OBJT_DEAD) { in vnode_pager_setsize()
429 VM_OBJECT_WUNLOCK(object); in vnode_pager_setsize()
432 KASSERT(object->type == OBJT_VNODE, in vnode_pager_setsize()
433 ("not vnode-backed object %p", object)); in vnode_pager_setsize()
434 if (nsize == object->un_pager.vnp.vnp_size) { in vnode_pager_setsize()
438 VM_OBJECT_WUNLOCK(object); in vnode_pager_setsize()
442 if (nsize < object->un_pager.vnp.vnp_size) { in vnode_pager_setsize()
446 if (nobjsize < object->size) in vnode_pager_setsize()
447 vm_object_page_remove(object, nobjsize, object->size, in vnode_pager_setsize()
458 (m = vm_page_lookup(object, OFF_TO_IDX(nsize))) != NULL && in vnode_pager_setsize()
493 object->un_pager.vnp.vnp_size = nsize; in vnode_pager_setsize()
494 object->size = nobjsize; in vnode_pager_setsize()
495 VM_OBJECT_WUNLOCK(object); in vnode_pager_setsize()
539 vnode_pager_input_smlfs(vm_object_t object, vm_page_t m) in vnode_pager_input_smlfs() argument
551 vp = object->handle; in vnode_pager_input_smlfs()
569 if (address >= object->un_pager.vnp.vnp_size) { in vnode_pager_input_smlfs()
616 VM_OBJECT_WLOCK(object); in vnode_pager_input_smlfs()
618 VM_OBJECT_WUNLOCK(object); in vnode_pager_input_smlfs()
631 vnode_pager_input_old(vm_object_t object, vm_page_t m) in vnode_pager_input_old() argument
640 VM_OBJECT_ASSERT_WLOCKED(object); in vnode_pager_input_old()
646 if (IDX_TO_OFF(m->pindex) >= object->un_pager.vnp.vnp_size) { in vnode_pager_input_old()
650 if (IDX_TO_OFF(m->pindex) + size > object->un_pager.vnp.vnp_size) in vnode_pager_input_old()
651 size = object->un_pager.vnp.vnp_size - IDX_TO_OFF(m->pindex); in vnode_pager_input_old()
652 vp = object->handle; in vnode_pager_input_old()
653 VM_OBJECT_WUNLOCK(object); in vnode_pager_input_old()
683 VM_OBJECT_WLOCK(object); in vnode_pager_input_old()
704 vnode_pager_getpages(vm_object_t object, vm_page_t *m, int count, int *rbehind, in vnode_pager_getpages() argument
710 vp = object->handle; in vnode_pager_getpages()
711 VM_OBJECT_WUNLOCK(object); in vnode_pager_getpages()
715 VM_OBJECT_WLOCK(object); in vnode_pager_getpages()
720 vnode_pager_getpages_async(vm_object_t object, vm_page_t *m, int count, in vnode_pager_getpages_async() argument
726 vp = object->handle; in vnode_pager_getpages_async()
727 VM_OBJECT_WUNLOCK(object); in vnode_pager_getpages_async()
731 VM_OBJECT_WLOCK(object); in vnode_pager_getpages_async()
764 vm_object_t object; in vnode_pager_generic_getpages() local
781 object = vp->v_object; in vnode_pager_generic_getpages()
786 KASSERT(foff < object->un_pager.vnp.vnp_size, in vnode_pager_generic_getpages()
822 VM_OBJECT_WLOCK(object); in vnode_pager_generic_getpages()
826 error = vnode_pager_input_old(object, m[i]); in vnode_pager_generic_getpages()
830 VM_OBJECT_WUNLOCK(object); in vnode_pager_generic_getpages()
846 error = vnode_pager_input_smlfs(object, m[i]); in vnode_pager_generic_getpages()
865 VM_OBJECT_WLOCK(object); in vnode_pager_generic_getpages()
867 VM_OBJECT_WUNLOCK(object); in vnode_pager_generic_getpages()
882 if (m[0]->pindex + after >= object->size) in vnode_pager_generic_getpages()
883 after = object->size - 1 - m[0]->pindex; in vnode_pager_generic_getpages()
894 rahead = min(rahead, object->size - m[count - 1]->pindex); in vnode_pager_generic_getpages()
929 VM_OBJECT_WLOCK(object); in vnode_pager_generic_getpages()
939 p = vm_page_alloc(object, tpindex, VM_ALLOC_NORMAL); in vnode_pager_generic_getpages()
965 if (!VM_OBJECT_WOWNED(object)) in vnode_pager_generic_getpages()
966 VM_OBJECT_WLOCK(object); in vnode_pager_generic_getpages()
971 if (endpindex > object->size) in vnode_pager_generic_getpages()
972 endpindex = object->size; in vnode_pager_generic_getpages()
976 p = vm_page_alloc(object, tpindex, VM_ALLOC_NORMAL); in vnode_pager_generic_getpages()
987 if (VM_OBJECT_WOWNED(object)) in vnode_pager_generic_getpages()
988 VM_OBJECT_WUNLOCK(object); in vnode_pager_generic_getpages()
1016 if ((foff + bytecount) > object->un_pager.vnp.vnp_size) in vnode_pager_generic_getpages()
1017 bytecount = object->un_pager.vnp.vnp_size - foff; in vnode_pager_generic_getpages()
1099 vm_object_t object; in vnode_pager_generic_getpages_done() local
1104 object = bp->b_vp->v_object; in vnode_pager_generic_getpages_done()
1120 VM_OBJECT_WLOCK(object); in vnode_pager_generic_getpages_done()
1128 if (nextoff <= object->un_pager.vnp.vnp_size) { in vnode_pager_generic_getpages_done()
1146 object->un_pager.vnp.vnp_size - tfoff); in vnode_pager_generic_getpages_done()
1148 object->un_pager.vnp.vnp_size - tfoff)) == 0, in vnode_pager_generic_getpages_done()
1155 VM_OBJECT_WUNLOCK(object); in vnode_pager_generic_getpages_done()
1171 vnode_pager_putpages(vm_object_t object, vm_page_t *m, int count, in vnode_pager_putpages() argument
1196 vp = object->handle; in vnode_pager_putpages()
1197 VM_OBJECT_WUNLOCK(object); in vnode_pager_putpages()
1201 VM_OBJECT_WLOCK(object); in vnode_pager_putpages()
1235 vm_object_t object; in vnode_pager_generic_putpages() local
1246 object = vp->v_object; in vnode_pager_generic_putpages()
1277 VM_OBJECT_RLOCK(object); in vnode_pager_generic_putpages()
1278 if (maxsize + poffset > object->un_pager.vnp.vnp_size) { in vnode_pager_generic_putpages()
1279 if (!VM_OBJECT_TRYUPGRADE(object)) { in vnode_pager_generic_putpages()
1280 VM_OBJECT_RUNLOCK(object); in vnode_pager_generic_putpages()
1281 VM_OBJECT_WLOCK(object); in vnode_pager_generic_putpages()
1282 if (maxsize + poffset <= object->un_pager.vnp.vnp_size) in vnode_pager_generic_putpages()
1285 if (object->un_pager.vnp.vnp_size > poffset) { in vnode_pager_generic_putpages()
1286 maxsize = object->un_pager.vnp.vnp_size - poffset; in vnode_pager_generic_putpages()
1312 VM_OBJECT_LOCK_DOWNGRADE(object); in vnode_pager_generic_putpages()
1359 VM_OBJECT_RUNLOCK(object); in vnode_pager_generic_putpages()
1375 VM_OBJECT_RLOCK(object); in vnode_pager_generic_putpages()
1393 VM_OBJECT_RLOCK(object); in vnode_pager_generic_putpages()
1407 VM_OBJECT_RUNLOCK(object); in vnode_pager_generic_putpages()
1456 obj = ma[0]->object; in vnode_pager_undirty_pages()
1503 vnode_pager_update_writecount(vm_object_t object, vm_offset_t start, in vnode_pager_update_writecount() argument
1509 VM_OBJECT_WLOCK(object); in vnode_pager_update_writecount()
1510 if (object->type != OBJT_VNODE) { in vnode_pager_update_writecount()
1511 VM_OBJECT_WUNLOCK(object); in vnode_pager_update_writecount()
1514 old_wm = object->un_pager.vnp.writemappings; in vnode_pager_update_writecount()
1515 object->un_pager.vnp.writemappings += (vm_ooffset_t)end - start; in vnode_pager_update_writecount()
1516 vp = object->handle; in vnode_pager_update_writecount()
1517 if (old_wm == 0 && object->un_pager.vnp.writemappings != 0) { in vnode_pager_update_writecount()
1522 } else if (old_wm != 0 && object->un_pager.vnp.writemappings == 0) { in vnode_pager_update_writecount()
1528 VM_OBJECT_WUNLOCK(object); in vnode_pager_update_writecount()
1532 vnode_pager_release_writecount(vm_object_t object, vm_offset_t start, in vnode_pager_release_writecount() argument
1539 VM_OBJECT_WLOCK(object); in vnode_pager_release_writecount()
1545 if (object->type != OBJT_VNODE) { in vnode_pager_release_writecount()
1546 VM_OBJECT_WUNLOCK(object); in vnode_pager_release_writecount()
1555 if (object->un_pager.vnp.writemappings != inc) { in vnode_pager_release_writecount()
1556 object->un_pager.vnp.writemappings -= inc; in vnode_pager_release_writecount()
1557 VM_OBJECT_WUNLOCK(object); in vnode_pager_release_writecount()
1561 vp = object->handle; in vnode_pager_release_writecount()
1563 VM_OBJECT_WUNLOCK(object); in vnode_pager_release_writecount()
1574 vnode_pager_update_writecount(object, end, start); in vnode_pager_release_writecount()