Lines Matching defs:backing_object
266 object->backing_object = NULL;
461 vm_object_allocate_anon(vm_pindex_t size, vm_object_t backing_object,
466 if (backing_object == NULL)
468 else if ((backing_object->flags & OBJ_ANON) != 0)
469 handle = backing_object->handle;
471 handle = backing_object;
571 vm_object_deallocate_anon(vm_object_t backing_object)
576 object = LIST_FIRST(&backing_object->shadow_head);
578 atomic_load_int(&backing_object->shadow_count) == 1,
580 backing_object->ref_count,
581 atomic_load_int(&backing_object->shadow_count)));
591 VM_OBJECT_WUNLOCK(backing_object);
595 VM_OBJECT_WUNLOCK(backing_object);
605 backing_object = object->backing_object;
606 if (backing_object != NULL && (backing_object->flags & OBJ_ANON) != 0)
684 temp = object->backing_object;
716 vm_object_t backing_object;
718 backing_object = object->backing_object;
720 VM_OBJECT_ASSERT_WLOCKED(backing_object);
725 vm_object_sub_shadow(backing_object);
730 object->backing_object = NULL;
736 vm_object_t backing_object;
740 backing_object = object->backing_object;
742 VM_OBJECT_WLOCK(backing_object);
744 VM_OBJECT_WUNLOCK(backing_object);
746 object->backing_object = NULL;
747 vm_object_sub_shadow(backing_object);
752 vm_object_backing_insert_locked(vm_object_t object, vm_object_t backing_object)
757 atomic_add_int(&backing_object->shadow_count, 1);
758 if ((backing_object->flags & OBJ_ANON) != 0) {
759 VM_OBJECT_ASSERT_WLOCKED(backing_object);
760 LIST_INSERT_HEAD(&backing_object->shadow_head, object,
764 object->backing_object = backing_object;
768 vm_object_backing_insert(vm_object_t object, vm_object_t backing_object)
773 if ((backing_object->flags & OBJ_ANON) != 0) {
774 VM_OBJECT_WLOCK(backing_object);
775 vm_object_backing_insert_locked(object, backing_object);
776 VM_OBJECT_WUNLOCK(backing_object);
778 object->backing_object = backing_object;
779 atomic_add_int(&backing_object->shadow_count, 1);
784 * Insert an object into a backing_object's shadow list with an additional
785 * reference to the backing_object added.
788 vm_object_backing_insert_ref(vm_object_t object, vm_object_t backing_object)
793 if ((backing_object->flags & OBJ_ANON) != 0) {
794 VM_OBJECT_WLOCK(backing_object);
795 KASSERT((backing_object->flags & OBJ_DEAD) == 0,
797 vm_object_reference_locked(backing_object);
798 vm_object_backing_insert_locked(object, backing_object);
799 vm_object_clear_flag(backing_object, OBJ_ONEMAPPING);
800 VM_OBJECT_WUNLOCK(backing_object);
802 vm_object_reference(backing_object);
803 atomic_add_int(&backing_object->shadow_count, 1);
804 object->backing_object = backing_object;
809 * Transfer a backing reference from backing_object to object.
812 vm_object_backing_transfer(vm_object_t object, vm_object_t backing_object)
817 * Note that the reference to backing_object->backing_object
818 * moves from within backing_object to within object.
821 new_backing_object = backing_object->backing_object;
826 vm_object_backing_remove_locked(backing_object);
832 * unchanged, its reference provided by backing_object
835 object->backing_object = new_backing_object;
836 backing_object->backing_object = NULL;
862 vm_object_t backing_object;
867 backing_object = object->backing_object;
868 if (backing_object == NULL ||
869 (backing_object->flags & OBJ_ANON) == 0)
871 VM_OBJECT_WLOCK(backing_object);
872 if ((backing_object->flags & (OBJ_DEAD | OBJ_COLLAPSING)) == 0)
875 vm_object_pip_sleep(backing_object, "vmbckwait");
879 return (backing_object);
947 KASSERT(object->backing_object == NULL,
1179 vm_object_t backing_object;
1190 while ((backing_object = object->backing_object) != NULL) {
1191 VM_OBJECT_WLOCK(backing_object);
1194 object = backing_object;
1330 vm_object_t backing_object, tobject;
1357 if (object->backing_object == NULL) {
1375 backing_object = tobject->backing_object;
1376 if (backing_object == NULL)
1378 VM_OBJECT_WLOCK(backing_object);
1383 tobject = backing_object;
1525 vm_object_t orig_object, new_object, backing_object;
1547 * additional reference on backing_object by new object will
1559 backing_object = orig_object->backing_object;
1560 if (backing_object != NULL) {
1561 vm_object_backing_insert_ref(new_object, backing_object);
1658 vm_object_t backing_object;
1661 backing_object = object->backing_object;
1662 VM_OBJECT_ASSERT_WLOCKED(backing_object);
1664 KASSERT(p == NULL || p->object == object || p->object == backing_object,
1665 ("invalid ownership %p %p %p", p, object, backing_object));
1669 VM_OBJECT_WUNLOCK(backing_object);
1673 VM_OBJECT_WUNLOCK(backing_object);
1679 VM_OBJECT_WUNLOCK(backing_object);
1682 VM_OBJECT_WLOCK(backing_object);
1683 vm_page_iter_init(pages, backing_object);
1691 vm_object_t backing_object;
1696 VM_OBJECT_ASSERT_WLOCKED(object->backing_object);
1698 backing_object = object->backing_object;
1704 vm_page_iter_init(&pages, backing_object);
1717 KASSERT(object->backing_object == backing_object,
1719 object->backing_object, backing_object));
1720 KASSERT(p->object == backing_object,
1722 p->object, backing_object));
1726 vm_pager_freespace(backing_object, p->pindex, 1);
1777 vm_pager_freespace(backing_object, p->pindex, 1);
1804 vm_pager_freespace(backing_object, new_pindex +
1811 vm_reserv_rename(p, object, backing_object,
1830 vm_object_t backing_object, new_backing_object;
1839 * Wait for the backing_object to finish any pending
1843 backing_object = vm_object_backing_collapse_wait(object);
1844 if (backing_object == NULL)
1851 KASSERT((backing_object->flags &
1863 if (backing_object->ref_count == 1) {
1864 KASSERT(atomic_load_int(&backing_object->shadow_count)
1867 atomic_load_int(&backing_object->shadow_count)));
1870 vm_object_pip_add(backing_object, 1);
1871 vm_object_set_flag(backing_object, OBJ_DEAD);
1880 * Move the pager from backing_object to object.
1883 * backing_object's and object's locks are released and
1886 swap_pager_copy(backing_object, object,
1890 * Object now shadows whatever backing_object did.
1893 vm_object_backing_transfer(object, backing_object);
1895 backing_object->backing_object_offset;
1900 * Discard backing_object.
1906 KASSERT(backing_object->ref_count == 1, (
1907 "backing_object %p was somehow re-referenced during collapse!",
1908 backing_object));
1909 vm_object_pip_wakeup(backing_object);
1910 (void)refcount_release(&backing_object->ref_count);
1911 umtx_shm_object_terminated(backing_object);
1912 vm_object_terminate(backing_object);
1920 * The object lock and backing_object lock must not
1924 VM_OBJECT_WUNLOCK(backing_object);
1930 * chain. Deallocating backing_object will not remove
1934 new_backing_object = backing_object->backing_object;
1939 backing_object->backing_object_offset;
1943 * Drop the reference count on backing_object. Since
1946 (void)refcount_release(&backing_object->ref_count);
1947 KASSERT(backing_object->ref_count >= 1, (
1948 "backing_object %p was somehow dereferenced during collapse!",
1949 backing_object));
1950 VM_OBJECT_WUNLOCK(backing_object);
2192 if (prev_object->backing_object != NULL) {
2314 tobject = tobject->backing_object;
2333 t1object = tobject->backing_object;
2351 t1object = tobject->backing_object;
2516 kvo->kvo_backing_obj = (uintptr_t)obj->backing_object;
2634 for (; obj; obj = obj->backing_object)
2679 "ref: %d, size: %lu: 0x%lx, backing_object: %p\n",
2682 (void *)object->backing_object);
2714 db_iprintf(" sref=%d, backing_object(%d)=(%p)+0x%jx\n",
2716 object->backing_object ? object->backing_object->ref_count : 0,
2717 object->backing_object, (uintmax_t)object->backing_object_offset);