Lines Matching refs:object

82 static int vnode_pager_input_smlfs(vm_object_t object, vm_page_t m);
83 static int vnode_pager_input_old(vm_object_t object, vm_page_t m);
105 vm_object_t object; in vnode_create_vobject() local
112 while ((object = vp->v_object) != NULL) { in vnode_create_vobject()
113 VM_OBJECT_WLOCK(object); in vnode_create_vobject()
114 if (!(object->flags & OBJ_DEAD)) { in vnode_create_vobject()
115 VM_OBJECT_WUNLOCK(object); in vnode_create_vobject()
119 vm_object_set_flag(object, OBJ_DISCONNECTWNT); in vnode_create_vobject()
120 VM_OBJECT_SLEEP(object, object, PDROP | PVM, "vodead", 0); in vnode_create_vobject()
134 object = vnode_pager_alloc(vp, size, 0, 0, td->td_ucred); in vnode_create_vobject()
139 VM_OBJECT_WLOCK(object); in vnode_create_vobject()
140 object->ref_count--; in vnode_create_vobject()
141 VM_OBJECT_WUNLOCK(object); in vnode_create_vobject()
188 vm_object_t object; in vnode_pager_alloc() local
204 while ((object = vp->v_object) != NULL) { in vnode_pager_alloc()
205 VM_OBJECT_WLOCK(object); in vnode_pager_alloc()
206 if ((object->flags & OBJ_DEAD) == 0) in vnode_pager_alloc()
208 vm_object_set_flag(object, OBJ_DISCONNECTWNT); in vnode_pager_alloc()
209 VM_OBJECT_SLEEP(object, object, PDROP | PVM, "vadead", 0); in vnode_pager_alloc()
214 if (object == NULL) { in vnode_pager_alloc()
218 object = vm_object_allocate(OBJT_VNODE, OFF_TO_IDX(round_page(size))); in vnode_pager_alloc()
220 object->un_pager.vnp.vnp_size = size; in vnode_pager_alloc()
221 object->un_pager.vnp.writemappings = 0; in vnode_pager_alloc()
223 object->handle = handle; in vnode_pager_alloc()
230 VM_OBJECT_WLOCK(object); in vnode_pager_alloc()
231 KASSERT(object->ref_count == 1, in vnode_pager_alloc()
232 ("leaked ref %p %d", object, object->ref_count)); in vnode_pager_alloc()
233 object->type = OBJT_DEAD; in vnode_pager_alloc()
234 object->ref_count = 0; in vnode_pager_alloc()
235 VM_OBJECT_WUNLOCK(object); in vnode_pager_alloc()
236 vm_object_destroy(object); in vnode_pager_alloc()
239 vp->v_object = object; in vnode_pager_alloc()
242 object->ref_count++; in vnode_pager_alloc()
243 VM_OBJECT_WUNLOCK(object); in vnode_pager_alloc()
246 return (object); in vnode_pager_alloc()
253 vnode_pager_dealloc(object) in vnode_pager_dealloc() argument
254 vm_object_t object; in vnode_pager_dealloc()
259 vp = object->handle;
263 VM_OBJECT_ASSERT_WLOCKED(object);
264 vm_object_pip_wait(object, "vnpdea");
265 refs = object->ref_count;
267 object->handle = NULL;
268 object->type = OBJT_DEAD;
269 if (object->flags & OBJ_DISCONNECTWNT) {
270 vm_object_clear_flag(object, OBJ_DISCONNECTWNT);
271 wakeup(object);
274 if (object->un_pager.vnp.writemappings > 0) {
275 object->un_pager.vnp.writemappings = 0;
282 VM_OBJECT_WUNLOCK(object);
285 VM_OBJECT_WLOCK(object);
289 vnode_pager_haspage(object, pindex, before, after) in vnode_pager_haspage() argument
290 vm_object_t object; in vnode_pager_haspage()
295 struct vnode *vp = object->handle;
303 VM_OBJECT_ASSERT_WLOCKED(object);
314 if (IDX_TO_OFF(pindex) >= object->un_pager.vnp.vnp_size)
326 VM_OBJECT_WUNLOCK(object);
328 VM_OBJECT_WLOCK(object);
344 object->un_pager.vnp.vnp_size) {
346 OFF_TO_IDX(object->un_pager.vnp.vnp_size) -
376 vm_object_t object; local
380 if ((object = vp->v_object) == NULL)
383 VM_OBJECT_WLOCK(object);
384 if (object->type == OBJT_DEAD) {
385 VM_OBJECT_WUNLOCK(object);
388 KASSERT(object->type == OBJT_VNODE,
389 ("not vnode-backed object %p", object));
390 if (nsize == object->un_pager.vnp.vnp_size) {
394 VM_OBJECT_WUNLOCK(object);
398 if (nsize < object->un_pager.vnp.vnp_size) {
402 if (nobjsize < object->size)
403 vm_object_page_remove(object, nobjsize, object->size,
414 (m = vm_page_lookup(object, OFF_TO_IDX(nsize))) != NULL &&
448 vm_page_is_cached(object, OFF_TO_IDX(nsize))) {
449 vm_page_cache_free(object, OFF_TO_IDX(nsize),
453 object->un_pager.vnp.vnp_size = nsize;
454 object->size = nobjsize;
455 VM_OBJECT_WUNLOCK(object);
499 vnode_pager_input_smlfs(object, m) in vnode_pager_input_smlfs() argument
500 vm_object_t object; in vnode_pager_input_smlfs()
513 vp = object->handle;
531 if (address >= object->un_pager.vnp.vnp_size) {
578 VM_OBJECT_WLOCK(object);
580 VM_OBJECT_WUNLOCK(object);
593 vnode_pager_input_old(object, m) in vnode_pager_input_old() argument
594 vm_object_t object; in vnode_pager_input_old()
604 VM_OBJECT_ASSERT_WLOCKED(object);
610 if (IDX_TO_OFF(m->pindex) >= object->un_pager.vnp.vnp_size) {
614 if (IDX_TO_OFF(m->pindex) + size > object->un_pager.vnp.vnp_size)
615 size = object->un_pager.vnp.vnp_size - IDX_TO_OFF(m->pindex);
616 vp = object->handle;
617 VM_OBJECT_WUNLOCK(object);
647 VM_OBJECT_WLOCK(object);
668 vnode_pager_getpages(object, m, count, reqpage) in vnode_pager_getpages() argument
669 vm_object_t object; in vnode_pager_getpages()
678 vp = object->handle;
679 VM_OBJECT_WUNLOCK(object);
683 VM_OBJECT_WLOCK(object);
698 vm_object_t object; local
711 object = vp->v_object;
734 VM_OBJECT_WLOCK(object);
744 error = vnode_pager_input_old(object, m[reqpage]);
745 VM_OBJECT_WUNLOCK(object);
748 VM_OBJECT_WLOCK(object);
755 VM_OBJECT_WUNLOCK(object);
765 VM_OBJECT_WLOCK(object);
772 VM_OBJECT_WUNLOCK(object);
775 return vnode_pager_input_smlfs(object, m[reqpage]);
783 VM_OBJECT_WLOCK(object);
791 VM_OBJECT_WUNLOCK(object);
804 VM_OBJECT_WUNLOCK(object);
808 VM_OBJECT_WUNLOCK(object);
821 VM_OBJECT_WLOCK(object);
828 VM_OBJECT_WUNLOCK(object);
832 VM_OBJECT_WLOCK(object);
833 if (i == reqpage && foff < object->un_pager.vnp.vnp_size) {
838 (object->un_pager.vnp.vnp_size >> 32),
839 (uintmax_t)object->un_pager.vnp.vnp_size);
844 VM_OBJECT_WUNLOCK(object);
851 VM_OBJECT_WLOCK(object);
857 VM_OBJECT_WUNLOCK(object);
860 VM_OBJECT_WLOCK(object);
866 VM_OBJECT_WUNLOCK(object);
894 if ((foff + size) > object->un_pager.vnp.vnp_size)
895 size = object->un_pager.vnp.vnp_size - foff;
980 VM_OBJECT_WLOCK(object);
987 if (nextoff <= object->un_pager.vnp.vnp_size) {
1007 object->un_pager.vnp.vnp_size - tfoff);
1009 object->un_pager.vnp.vnp_size - tfoff)) == 0,
1017 VM_OBJECT_WUNLOCK(object);
1033 vnode_pager_putpages(vm_object_t object, vm_page_t *m, int count, in vnode_pager_putpages() argument
1058 vp = object->handle; in vnode_pager_putpages()
1059 VM_OBJECT_WUNLOCK(object); in vnode_pager_putpages()
1063 VM_OBJECT_WLOCK(object); in vnode_pager_putpages()
1081 vm_object_t object; in vnode_pager_generic_putpages() local
1095 object = vp->v_object; in vnode_pager_generic_putpages()
1125 VM_OBJECT_WLOCK(object); in vnode_pager_generic_putpages()
1126 if (maxsize + poffset > object->un_pager.vnp.vnp_size) { in vnode_pager_generic_putpages()
1127 if (object->un_pager.vnp.vnp_size > poffset) { in vnode_pager_generic_putpages()
1130 maxsize = object->un_pager.vnp.vnp_size - poffset; in vnode_pager_generic_putpages()
1156 VM_OBJECT_WUNLOCK(object); in vnode_pager_generic_putpages()
1209 obj = ma[0]->object; in vnode_pager_undirty_pages()
1225 vnode_pager_update_writecount(vm_object_t object, vm_offset_t start, in vnode_pager_update_writecount() argument
1231 VM_OBJECT_WLOCK(object); in vnode_pager_update_writecount()
1232 if (object->type != OBJT_VNODE) { in vnode_pager_update_writecount()
1233 VM_OBJECT_WUNLOCK(object); in vnode_pager_update_writecount()
1236 old_wm = object->un_pager.vnp.writemappings; in vnode_pager_update_writecount()
1237 object->un_pager.vnp.writemappings += (vm_ooffset_t)end - start; in vnode_pager_update_writecount()
1238 vp = object->handle; in vnode_pager_update_writecount()
1239 if (old_wm == 0 && object->un_pager.vnp.writemappings != 0) { in vnode_pager_update_writecount()
1244 } else if (old_wm != 0 && object->un_pager.vnp.writemappings == 0) { in vnode_pager_update_writecount()
1250 VM_OBJECT_WUNLOCK(object); in vnode_pager_update_writecount()
1254 vnode_pager_release_writecount(vm_object_t object, vm_offset_t start, in vnode_pager_release_writecount() argument
1261 VM_OBJECT_WLOCK(object); in vnode_pager_release_writecount()
1267 if (object->type != OBJT_VNODE) { in vnode_pager_release_writecount()
1268 VM_OBJECT_WUNLOCK(object); in vnode_pager_release_writecount()
1277 if (object->un_pager.vnp.writemappings != inc) { in vnode_pager_release_writecount()
1278 object->un_pager.vnp.writemappings -= inc; in vnode_pager_release_writecount()
1279 VM_OBJECT_WUNLOCK(object); in vnode_pager_release_writecount()
1283 vp = object->handle; in vnode_pager_release_writecount()
1285 VM_OBJECT_WUNLOCK(object); in vnode_pager_release_writecount()
1296 vnode_pager_update_writecount(object, end, start); in vnode_pager_release_writecount()