Lines Matching refs:direct
151 struct preftree direct; /* BTRFS_SHARED_[DATA|BLOCK]_REF_KEY */
159 * The share_count tracks prelim_refs (direct and indirect) having a
421 /* direct refs use root == 0, key == NULL */
427 return add_prelim_ref(fs_info, &preftrees->direct, 0, NULL, level,
448 struct rb_node **p = &preftrees->direct.root.rb_root.rb_node;
720 * We maintain three separate rbtrees: one for direct refs, one for
729 * direct tree (merging there too).
762 "BUG: direct ref found in indirect tree")) {
786 prelim_ref_insert(ctx->fs_info, &preftrees->direct, ref,
815 prelim_ref_insert(ctx->fs_info, &preftrees->direct,
820 * Now it's a direct ref, put it in the direct tree. We must
823 prelim_ref_insert(ctx->fs_info, &preftrees->direct, ref, NULL);
854 BUG_ON(ref->parent); /* should not be a direct ref */
1361 * then the sharedness of a data extent becomes direct, the refcount of
1401 .direct = PREFTREE_INIT,
1589 node = rb_first_cached(&preftrees.direct.root);
1685 prelim_release(&preftrees.direct);
1964 * 2) level >= 0, a tree node/leaf: We can have a mix of direct
1969 * (direct ref) and a non-shared tree block ref (indirect
2001 * got multiple parents due to a mix of direct and indirect backrefs or
3121 * Handle direct tree backref
3239 * completely relying on direct backref (key->offset is parent