Lines Matching refs:preftrees

150 struct preftrees {
423 struct preftrees *preftrees, int level, u64 parent,
427 return add_prelim_ref(fs_info, &preftrees->direct, 0, NULL, level,
433 struct preftrees *preftrees, u64 root_id,
438 struct preftree *tree = &preftrees->indirect;
441 tree = &preftrees->indirect_missing_keys;
446 static int is_shared_data_backref(struct preftrees *preftrees, u64 bytenr)
448 struct rb_node **p = &preftrees->direct.root.rb_root.rb_node;
474 struct preftrees *preftrees, struct prelim_ref *ref,
510 is_shared_data_backref(preftrees, eb->start) ||
534 (is_shared_data_backref(preftrees, eb->start) ||
596 struct preftrees *preftrees,
690 ret = add_all_parents(ctx, root, path, parents, preftrees, ref, level);
737 struct preftrees *preftrees,
757 while ((rnode = rb_first_cached(&preftrees->indirect.root))) {
767 rb_erase_cached(&ref->rbnode, &preftrees->indirect.root);
768 preftrees->indirect.count--;
780 err = resolve_indirect_ref(ctx, path, preftrees, ref, parents);
786 prelim_ref_insert(ctx->fs_info, &preftrees->direct, ref,
815 prelim_ref_insert(ctx->fs_info, &preftrees->direct,
823 prelim_ref_insert(ctx->fs_info, &preftrees->direct, ref, NULL);
841 struct preftrees *preftrees, bool lock)
845 struct preftree *tree = &preftrees->indirect_missing_keys;
881 prelim_ref_insert(fs_info, &preftrees->indirect, ref, NULL);
893 struct preftrees *preftrees, struct share_check *sc)
934 ret = add_indirect_ref(fs_info, preftrees, ref->root,
946 ret = add_direct_ref(fs_info, preftrees, ref->level + 1,
978 ret = add_indirect_ref(fs_info, preftrees, ref->root,
989 ret = add_direct_ref(fs_info, preftrees, 0, ref->parent,
1018 int *info_level, struct preftrees *preftrees,
1084 ret = add_direct_ref(ctx->fs_info, preftrees,
1095 ret = add_direct_ref(ctx->fs_info, preftrees, 0, offset,
1100 ret = add_indirect_ref(ctx->fs_info, preftrees, offset,
1127 ret = add_indirect_ref(ctx->fs_info, preftrees,
1151 int info_level, struct preftrees *preftrees,
1183 ret = add_direct_ref(fs_info, preftrees,
1195 ret = add_direct_ref(fs_info, preftrees, 0,
1202 ret = add_indirect_ref(fs_info, preftrees, key.offset,
1231 ret = add_indirect_ref(fs_info, preftrees, root,
1400 struct preftrees preftrees = {
1470 &preftrees, sc);
1491 &preftrees, sc);
1495 &preftrees, sc);
1570 ret = add_missing_keys(ctx->fs_info, &preftrees, path->skip_locking == 0);
1574 WARN_ON(!RB_EMPTY_ROOT(&preftrees.indirect_missing_keys.root.rb_root));
1576 ret = resolve_indirect_refs(ctx, path, &preftrees, sc);
1580 WARN_ON(!RB_EMPTY_ROOT(&preftrees.indirect.root.rb_root));
1589 node = rb_first_cached(&preftrees.direct.root);
1685 prelim_release(&preftrees.direct);
1686 prelim_release(&preftrees.indirect);
1687 prelim_release(&preftrees.indirect_missing_keys);