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);
129 vm_object_t object; in vnode_create_vobject() local
136 while ((object = vp->v_object) != NULL) { in vnode_create_vobject()
137 VM_OBJECT_WLOCK(object); in vnode_create_vobject()
138 if (!(object->flags & OBJ_DEAD)) { in vnode_create_vobject()
139 VM_OBJECT_WUNLOCK(object); in vnode_create_vobject()
143 vm_object_set_flag(object, OBJ_DISCONNECTWNT); in vnode_create_vobject()
144 VM_OBJECT_SLEEP(object, object, PDROP | PVM, "vodead", 0); in vnode_create_vobject()
158 object = vnode_pager_alloc(vp, size, 0, 0, td->td_ucred); in vnode_create_vobject()
163 VM_OBJECT_WLOCK(object); in vnode_create_vobject()
164 object->ref_count--; in vnode_create_vobject()
165 VM_OBJECT_WUNLOCK(object); in vnode_create_vobject()
224 vm_object_t object; in vnode_pager_alloc() local
240 while ((object = vp->v_object) != NULL) { in vnode_pager_alloc()
241 VM_OBJECT_WLOCK(object); in vnode_pager_alloc()
242 if ((object->flags & OBJ_DEAD) == 0) in vnode_pager_alloc()
244 vm_object_set_flag(object, OBJ_DISCONNECTWNT); in vnode_pager_alloc()
245 VM_OBJECT_SLEEP(object, object, PDROP | PVM, "vadead", 0); in vnode_pager_alloc()
250 if (object == NULL) { in vnode_pager_alloc()
254 object = vm_object_allocate(OBJT_VNODE, OFF_TO_IDX(round_page(size))); in vnode_pager_alloc()
256 object->un_pager.vnp.vnp_size = size; in vnode_pager_alloc()
257 object->un_pager.vnp.writemappings = 0; in vnode_pager_alloc()
258 object->domain.dr_policy = vnode_domainset; in vnode_pager_alloc()
259 object->handle = handle; in vnode_pager_alloc()
261 VM_OBJECT_WLOCK(object); in vnode_pager_alloc()
262 vm_object_set_flag(object, OBJ_SIZEVNLOCK); in vnode_pager_alloc()
263 VM_OBJECT_WUNLOCK(object); in vnode_pager_alloc()
271 VM_OBJECT_WLOCK(object); in vnode_pager_alloc()
272 KASSERT(object->ref_count == 1, in vnode_pager_alloc()
273 ("leaked ref %p %d", object, object->ref_count)); in vnode_pager_alloc()
274 object->type = OBJT_DEAD; in vnode_pager_alloc()
275 object->ref_count = 0; in vnode_pager_alloc()
276 VM_OBJECT_WUNLOCK(object); in vnode_pager_alloc()
277 vm_object_destroy(object); in vnode_pager_alloc()
280 vp->v_object = object; in vnode_pager_alloc()
283 object->ref_count++; in vnode_pager_alloc()
285 vm_object_color(object, 0); in vnode_pager_alloc()
287 VM_OBJECT_WUNLOCK(object); in vnode_pager_alloc()
290 return (object); in vnode_pager_alloc()
297 vnode_pager_dealloc(vm_object_t object) in vnode_pager_dealloc() argument
302 vp = object->handle; in vnode_pager_dealloc()
306 VM_OBJECT_ASSERT_WLOCKED(object); in vnode_pager_dealloc()
307 vm_object_pip_wait(object, "vnpdea"); in vnode_pager_dealloc()
308 refs = object->ref_count; in vnode_pager_dealloc()
310 object->handle = NULL; in vnode_pager_dealloc()
311 object->type = OBJT_DEAD; in vnode_pager_dealloc()
312 if (object->flags & OBJ_DISCONNECTWNT) { in vnode_pager_dealloc()
313 vm_object_clear_flag(object, OBJ_DISCONNECTWNT); in vnode_pager_dealloc()
314 wakeup(object); in vnode_pager_dealloc()
317 if (object->un_pager.vnp.writemappings > 0) { in vnode_pager_dealloc()
318 object->un_pager.vnp.writemappings = 0; in vnode_pager_dealloc()
336 VM_OBJECT_WUNLOCK(object); in vnode_pager_dealloc()
339 VM_OBJECT_WLOCK(object); in vnode_pager_dealloc()
343 vnode_pager_haspage(vm_object_t object, vm_pindex_t pindex, int *before, in vnode_pager_haspage() argument
346 struct vnode *vp = object->handle; in vnode_pager_haspage()
354 VM_OBJECT_ASSERT_WLOCKED(object); in vnode_pager_haspage()
365 if (IDX_TO_OFF(pindex) >= object->un_pager.vnp.vnp_size) in vnode_pager_haspage()
377 VM_OBJECT_WUNLOCK(object); in vnode_pager_haspage()
379 VM_OBJECT_WLOCK(object); in vnode_pager_haspage()
398 roundup2(object->size, pagesperblock), in vnode_pager_haspage()
401 (uintmax_t )object->size)); in vnode_pager_haspage()
404 if (pindex + *after >= object->size) in vnode_pager_haspage()
405 *after = object->size - 1 - pindex; in vnode_pager_haspage()
430 vm_object_t object; in vnode_pager_setsize() local
434 if ((object = vp->v_object) == NULL) in vnode_pager_setsize()
446 VM_OBJECT_WLOCK(object); in vnode_pager_setsize()
447 if (object->type == OBJT_DEAD) { in vnode_pager_setsize()
448 VM_OBJECT_WUNLOCK(object); in vnode_pager_setsize()
451 KASSERT(object->type == OBJT_VNODE, in vnode_pager_setsize()
452 ("not vnode-backed object %p", object)); in vnode_pager_setsize()
453 if (nsize == object->un_pager.vnp.vnp_size) { in vnode_pager_setsize()
457 VM_OBJECT_WUNLOCK(object); in vnode_pager_setsize()
461 if (nsize < object->un_pager.vnp.vnp_size) { in vnode_pager_setsize()
465 if (nobjsize < object->size) in vnode_pager_setsize()
466 vm_object_page_remove(object, nobjsize, object->size, in vnode_pager_setsize()
477 (m = vm_page_lookup(object, OFF_TO_IDX(nsize))) != NULL && in vnode_pager_setsize()
512 object->un_pager.vnp.vnp_size = nsize; in vnode_pager_setsize()
513 object->size = nobjsize; in vnode_pager_setsize()
514 VM_OBJECT_WUNLOCK(object); in vnode_pager_setsize()
558 vnode_pager_input_smlfs(vm_object_t object, vm_page_t m) in vnode_pager_input_smlfs() argument
570 vp = object->handle; in vnode_pager_input_smlfs()
588 if (address >= object->un_pager.vnp.vnp_size) { in vnode_pager_input_smlfs()
635 VM_OBJECT_WLOCK(object); in vnode_pager_input_smlfs()
637 VM_OBJECT_WUNLOCK(object); in vnode_pager_input_smlfs()
650 vnode_pager_input_old(vm_object_t object, vm_page_t m) in vnode_pager_input_old() argument
659 VM_OBJECT_ASSERT_WLOCKED(object); in vnode_pager_input_old()
665 if (IDX_TO_OFF(m->pindex) >= object->un_pager.vnp.vnp_size) { in vnode_pager_input_old()
669 if (IDX_TO_OFF(m->pindex) + size > object->un_pager.vnp.vnp_size) in vnode_pager_input_old()
670 size = object->un_pager.vnp.vnp_size - IDX_TO_OFF(m->pindex); in vnode_pager_input_old()
671 vp = object->handle; in vnode_pager_input_old()
672 VM_OBJECT_WUNLOCK(object); in vnode_pager_input_old()
702 VM_OBJECT_WLOCK(object); in vnode_pager_input_old()
723 vnode_pager_getpages(vm_object_t object, vm_page_t *m, int count, int *rbehind, in vnode_pager_getpages() argument
729 vp = object->handle; in vnode_pager_getpages()
730 VM_OBJECT_WUNLOCK(object); in vnode_pager_getpages()
734 VM_OBJECT_WLOCK(object); in vnode_pager_getpages()
739 vnode_pager_getpages_async(vm_object_t object, vm_page_t *m, int count, in vnode_pager_getpages_async() argument
745 vp = object->handle; in vnode_pager_getpages_async()
746 VM_OBJECT_WUNLOCK(object); in vnode_pager_getpages_async()
750 VM_OBJECT_WLOCK(object); in vnode_pager_getpages_async()
787 vm_object_t object; in vnode_pager_generic_getpages() local
804 object = vp->v_object; in vnode_pager_generic_getpages()
809 KASSERT(foff < object->un_pager.vnp.vnp_size, in vnode_pager_generic_getpages()
845 VM_OBJECT_WLOCK(object); in vnode_pager_generic_getpages()
849 error = vnode_pager_input_old(object, m[i]); in vnode_pager_generic_getpages()
853 VM_OBJECT_WUNLOCK(object); in vnode_pager_generic_getpages()
869 error = vnode_pager_input_smlfs(object, m[i]); in vnode_pager_generic_getpages()
888 VM_OBJECT_WLOCK(object); in vnode_pager_generic_getpages()
890 VM_OBJECT_WUNLOCK(object); in vnode_pager_generic_getpages()
905 if (m[0]->pindex + after >= object->size) in vnode_pager_generic_getpages()
906 after = object->size - 1 - m[0]->pindex; in vnode_pager_generic_getpages()
917 rahead = min(rahead, object->size - m[count - 1]->pindex); in vnode_pager_generic_getpages()
952 VM_OBJECT_WLOCK(object); in vnode_pager_generic_getpages()
962 p = vm_page_alloc(object, tpindex, VM_ALLOC_NORMAL); in vnode_pager_generic_getpages()
988 if (!VM_OBJECT_WOWNED(object)) in vnode_pager_generic_getpages()
989 VM_OBJECT_WLOCK(object); in vnode_pager_generic_getpages()
994 if (endpindex > object->size) in vnode_pager_generic_getpages()
995 endpindex = object->size; in vnode_pager_generic_getpages()
999 p = vm_page_alloc(object, tpindex, VM_ALLOC_NORMAL); in vnode_pager_generic_getpages()
1010 if (VM_OBJECT_WOWNED(object)) in vnode_pager_generic_getpages()
1011 VM_OBJECT_WUNLOCK(object); in vnode_pager_generic_getpages()
1039 if ((foff + bytecount) > object->un_pager.vnp.vnp_size) in vnode_pager_generic_getpages()
1040 bytecount = object->un_pager.vnp.vnp_size - foff; in vnode_pager_generic_getpages()
1122 vm_object_t object; in vnode_pager_generic_getpages_done() local
1127 object = bp->b_vp->v_object; in vnode_pager_generic_getpages_done()
1143 VM_OBJECT_WLOCK(object); in vnode_pager_generic_getpages_done()
1153 if (nextoff <= object->un_pager.vnp.vnp_size) { in vnode_pager_generic_getpages_done()
1171 object->un_pager.vnp.vnp_size - tfoff); in vnode_pager_generic_getpages_done()
1173 object->un_pager.vnp.vnp_size - tfoff)) == 0, in vnode_pager_generic_getpages_done()
1180 VM_OBJECT_WUNLOCK(object); in vnode_pager_generic_getpages_done()
1196 vnode_pager_putpages(vm_object_t object, vm_page_t *m, int count, in vnode_pager_putpages() argument
1221 vp = object->handle; in vnode_pager_putpages()
1222 VM_OBJECT_WUNLOCK(object); in vnode_pager_putpages()
1226 VM_OBJECT_WLOCK(object); in vnode_pager_putpages()
1260 vm_object_t object; in vnode_pager_generic_putpages() local
1271 object = vp->v_object; in vnode_pager_generic_putpages()
1302 VM_OBJECT_RLOCK(object); in vnode_pager_generic_putpages()
1303 if (maxsize + poffset > object->un_pager.vnp.vnp_size) { in vnode_pager_generic_putpages()
1304 if (!VM_OBJECT_TRYUPGRADE(object)) { in vnode_pager_generic_putpages()
1305 VM_OBJECT_RUNLOCK(object); in vnode_pager_generic_putpages()
1306 VM_OBJECT_WLOCK(object); in vnode_pager_generic_putpages()
1307 if (maxsize + poffset <= object->un_pager.vnp.vnp_size) in vnode_pager_generic_putpages()
1310 if (object->un_pager.vnp.vnp_size > poffset) { in vnode_pager_generic_putpages()
1311 maxsize = object->un_pager.vnp.vnp_size - poffset; in vnode_pager_generic_putpages()
1337 VM_OBJECT_LOCK_DOWNGRADE(object); in vnode_pager_generic_putpages()
1384 VM_OBJECT_RUNLOCK(object); in vnode_pager_generic_putpages()
1400 VM_OBJECT_RLOCK(object); in vnode_pager_generic_putpages()
1418 VM_OBJECT_RLOCK(object); in vnode_pager_generic_putpages()
1432 VM_OBJECT_RUNLOCK(object); in vnode_pager_generic_putpages()
1481 obj = ma[0]->object; in vnode_pager_undirty_pages()
1528 vnode_pager_update_writecount(vm_object_t object, vm_offset_t start, in vnode_pager_update_writecount() argument
1534 VM_OBJECT_WLOCK(object); in vnode_pager_update_writecount()
1535 if (object->type != OBJT_VNODE) { in vnode_pager_update_writecount()
1536 VM_OBJECT_WUNLOCK(object); in vnode_pager_update_writecount()
1539 old_wm = object->un_pager.vnp.writemappings; in vnode_pager_update_writecount()
1540 object->un_pager.vnp.writemappings += (vm_ooffset_t)end - start; in vnode_pager_update_writecount()
1541 vp = object->handle; in vnode_pager_update_writecount()
1542 if (old_wm == 0 && object->un_pager.vnp.writemappings != 0) { in vnode_pager_update_writecount()
1547 } else if (old_wm != 0 && object->un_pager.vnp.writemappings == 0) { in vnode_pager_update_writecount()
1553 VM_OBJECT_WUNLOCK(object); in vnode_pager_update_writecount()
1557 vnode_pager_release_writecount(vm_object_t object, vm_offset_t start, in vnode_pager_release_writecount() argument
1564 VM_OBJECT_WLOCK(object); in vnode_pager_release_writecount()
1570 if (object->type != OBJT_VNODE) { in vnode_pager_release_writecount()
1571 VM_OBJECT_WUNLOCK(object); in vnode_pager_release_writecount()
1580 if (object->un_pager.vnp.writemappings != inc) { in vnode_pager_release_writecount()
1581 object->un_pager.vnp.writemappings -= inc; in vnode_pager_release_writecount()
1582 VM_OBJECT_WUNLOCK(object); in vnode_pager_release_writecount()
1586 vp = object->handle; in vnode_pager_release_writecount()
1588 VM_OBJECT_WUNLOCK(object); in vnode_pager_release_writecount()
1599 vnode_pager_update_writecount(object, end, start); in vnode_pager_release_writecount()