Lines Matching defs:backing_object

264 	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);
577 KASSERT(object != NULL && backing_object->shadow_count == 1,
579 backing_object->ref_count, backing_object->shadow_count));
589 VM_OBJECT_WUNLOCK(backing_object);
593 VM_OBJECT_WUNLOCK(backing_object);
603 backing_object = object->backing_object;
604 if (backing_object != NULL && (backing_object->flags & OBJ_ANON) != 0)
682 temp = object->backing_object;
725 vm_object_t backing_object;
727 backing_object = object->backing_object;
729 VM_OBJECT_ASSERT_WLOCKED(backing_object);
736 backing_object->shadow_count--;
739 object->backing_object = NULL;
745 vm_object_t backing_object;
750 backing_object = object->backing_object;
751 VM_OBJECT_WLOCK(backing_object);
753 VM_OBJECT_WUNLOCK(backing_object);
755 object->backing_object = NULL;
759 vm_object_backing_insert_locked(vm_object_t object, vm_object_t backing_object)
764 if ((backing_object->flags & OBJ_ANON) != 0) {
765 VM_OBJECT_ASSERT_WLOCKED(backing_object);
766 LIST_INSERT_HEAD(&backing_object->shadow_head, object,
768 backing_object->shadow_count++;
771 object->backing_object = backing_object;
775 vm_object_backing_insert(vm_object_t object, vm_object_t backing_object)
780 if ((backing_object->flags & OBJ_ANON) != 0) {
781 VM_OBJECT_WLOCK(backing_object);
782 vm_object_backing_insert_locked(object, backing_object);
783 VM_OBJECT_WUNLOCK(backing_object);
785 object->backing_object = backing_object;
789 * Insert an object into a backing_object's shadow list with an additional
790 * reference to the backing_object added.
793 vm_object_backing_insert_ref(vm_object_t object, vm_object_t backing_object)
798 if ((backing_object->flags & OBJ_ANON) != 0) {
799 VM_OBJECT_WLOCK(backing_object);
800 KASSERT((backing_object->flags & OBJ_DEAD) == 0,
802 vm_object_reference_locked(backing_object);
803 vm_object_backing_insert_locked(object, backing_object);
804 vm_object_clear_flag(backing_object, OBJ_ONEMAPPING);
805 VM_OBJECT_WUNLOCK(backing_object);
807 vm_object_reference(backing_object);
808 object->backing_object = backing_object;
813 * Transfer a backing reference from backing_object to object.
816 vm_object_backing_transfer(vm_object_t object, vm_object_t backing_object)
821 * Note that the reference to backing_object->backing_object
822 * moves from within backing_object to within object.
825 new_backing_object = backing_object->backing_object;
830 vm_object_backing_remove_locked(backing_object);
834 object->backing_object = new_backing_object;
835 backing_object->backing_object = NULL;
861 vm_object_t backing_object;
866 backing_object = object->backing_object;
867 if (backing_object == NULL ||
868 (backing_object->flags & OBJ_ANON) == 0)
870 VM_OBJECT_WLOCK(backing_object);
871 if ((backing_object->flags & (OBJ_DEAD | OBJ_COLLAPSING)) == 0)
874 vm_object_pip_sleep(backing_object, "vmbckwait");
878 return (backing_object);
941 KASSERT(object->backing_object == NULL,
1178 vm_object_t backing_object;
1189 while ((backing_object = object->backing_object) != NULL) {
1190 VM_OBJECT_WLOCK(backing_object);
1193 object = backing_object;
1315 vm_object_t backing_object, tobject;
1342 if (object->backing_object == NULL) {
1360 backing_object = tobject->backing_object;
1361 if (backing_object == NULL)
1363 VM_OBJECT_WLOCK(backing_object);
1368 tobject = backing_object;
1507 vm_object_t orig_object, new_object, backing_object;
1533 * additional reference on backing_object by new object will
1545 backing_object = orig_object->backing_object;
1546 if (backing_object != NULL) {
1547 vm_object_backing_insert_ref(new_object, backing_object);
1657 vm_object_t backing_object;
1660 backing_object = object->backing_object;
1661 VM_OBJECT_ASSERT_WLOCKED(backing_object);
1663 KASSERT(p == NULL || p->object == object || p->object == backing_object,
1664 ("invalid ownership %p %p %p", p, object, backing_object));
1668 VM_OBJECT_WUNLOCK(backing_object);
1672 VM_OBJECT_WUNLOCK(backing_object);
1678 VM_OBJECT_WLOCK(backing_object);
1679 return (TAILQ_FIRST(&backing_object->memq));
1685 vm_object_t backing_object;
1690 VM_OBJECT_ASSERT_WLOCKED(object->backing_object);
1692 backing_object = object->backing_object;
1694 if ((backing_object->flags & OBJ_ANON) == 0)
1698 p = vm_page_find_least(backing_object, pi);
1699 ps = swap_pager_find_least(backing_object, pi);
1709 ps = swap_pager_find_least(backing_object, pi);
1710 if (p == NULL && ps >= backing_object->size)
1772 vm_object_t backing_object;
1777 VM_OBJECT_ASSERT_WLOCKED(object->backing_object);
1779 backing_object = object->backing_object;
1785 for (p = TAILQ_FIRST(&backing_object->memq); p != NULL; p = next) {
1797 KASSERT(object->backing_object == backing_object,
1799 object->backing_object, backing_object));
1800 KASSERT(p->object == backing_object,
1802 p->object, backing_object));
1806 vm_pager_freespace(backing_object, p->pindex, 1);
1855 vm_pager_freespace(backing_object, p->pindex, 1);
1879 vm_pager_freespace(backing_object, new_pindex +
1886 vm_reserv_rename(p, object, backing_object,
1904 vm_object_t backing_object, new_backing_object;
1913 * Wait for the backing_object to finish any pending
1917 backing_object = vm_object_backing_collapse_wait(object);
1918 if (backing_object == NULL)
1925 KASSERT((backing_object->flags &
1937 if (backing_object->ref_count == 1) {
1938 KASSERT(backing_object->shadow_count == 1,
1940 backing_object->shadow_count));
1943 vm_object_pip_add(backing_object, 1);
1944 vm_object_set_flag(backing_object, OBJ_DEAD);
1954 * Break any reservations from backing_object.
1956 if (__predict_false(!LIST_EMPTY(&backing_object->rvq)))
1957 vm_reserv_break_all(backing_object);
1961 * Move the pager from backing_object to object.
1963 if ((backing_object->flags & OBJ_SWAP) != 0) {
1966 * the backing_object's and object's locks are
1969 * destroy backing_object, it will change the
1973 backing_object,
1979 * Object now shadows whatever backing_object did.
1982 vm_object_backing_transfer(object, backing_object);
1984 backing_object->backing_object_offset;
1989 * Discard backing_object.
1995 KASSERT(backing_object->ref_count == 1, (
1996 "backing_object %p was somehow re-referenced during collapse!",
1997 backing_object));
1998 vm_object_pip_wakeup(backing_object);
1999 (void)refcount_release(&backing_object->ref_count);
2000 vm_object_terminate(backing_object);
2008 * The object lock and backing_object lock must not
2012 VM_OBJECT_WUNLOCK(backing_object);
2018 * chain. Deallocating backing_object will not remove
2022 new_backing_object = backing_object->backing_object;
2027 backing_object->backing_object_offset;
2031 * Drop the reference count on backing_object. Since
2034 (void)refcount_release(&backing_object->ref_count);
2035 KASSERT(backing_object->ref_count >= 1, (
2036 "backing_object %p was somehow dereferenced during collapse!",
2037 backing_object));
2038 VM_OBJECT_WUNLOCK(backing_object);
2264 if (prev_object->backing_object != NULL) {
2386 tobject = tobject->backing_object;
2405 t1object = tobject->backing_object;
2420 t1object = tobject->backing_object;
2556 kvo->kvo_backing_obj = (uintptr_t)obj->backing_object;
2627 for (; obj; obj = obj->backing_object)
2672 "ref: %d, size: %lu: 0x%lx, backing_object: %p\n",
2675 (void *)object->backing_object);
2707 db_iprintf(" sref=%d, backing_object(%d)=(%p)+0x%jx\n",
2709 object->backing_object ? object->backing_object->ref_count : 0,
2710 object->backing_object, (uintmax_t)object->backing_object_offset);