Lines Matching refs:preftrees
122 struct preftrees { struct
367 struct preftrees *preftrees, int level, u64 parent, in add_direct_ref() argument
371 return add_prelim_ref(fs_info, &preftrees->direct, 0, NULL, level, in add_direct_ref()
377 struct preftrees *preftrees, u64 root_id, in add_indirect_ref() argument
382 struct preftree *tree = &preftrees->indirect; in add_indirect_ref()
385 tree = &preftrees->indirect_missing_keys; in add_indirect_ref()
390 static int is_shared_data_backref(struct preftrees *preftrees, u64 bytenr) in is_shared_data_backref() argument
392 struct rb_node **p = &preftrees->direct.root.rb_root.rb_node; in is_shared_data_backref()
417 struct preftrees *preftrees, struct prelim_ref *ref, in add_all_parents() argument
453 is_shared_data_backref(preftrees, eb->start) || in add_all_parents()
477 (is_shared_data_backref(preftrees, eb->start) || in add_all_parents()
536 struct preftrees *preftrees, in resolve_indirect_ref() argument
631 ret = add_all_parents(root, path, parents, preftrees, ref, level, in resolve_indirect_ref()
667 struct preftrees *preftrees, in resolve_indirect_refs() argument
688 while ((rnode = rb_first_cached(&preftrees->indirect.root))) { in resolve_indirect_refs()
698 rb_erase_cached(&ref->rbnode, &preftrees->indirect.root); in resolve_indirect_refs()
699 preftrees->indirect.count--; in resolve_indirect_refs()
712 err = resolve_indirect_ref(fs_info, path, time_seq, preftrees, in resolve_indirect_refs()
720 prelim_ref_insert(fs_info, &preftrees->direct, ref, in resolve_indirect_refs()
749 prelim_ref_insert(fs_info, &preftrees->direct, in resolve_indirect_refs()
757 prelim_ref_insert(fs_info, &preftrees->direct, ref, NULL); in resolve_indirect_refs()
771 struct preftrees *preftrees, bool lock) in add_missing_keys() argument
775 struct preftree *tree = &preftrees->indirect_missing_keys; in add_missing_keys()
805 prelim_ref_insert(fs_info, &preftrees->indirect, ref, NULL); in add_missing_keys()
817 struct preftrees *preftrees, struct share_check *sc) in add_delayed_refs() argument
857 ret = add_indirect_ref(fs_info, preftrees, ref->root, in add_delayed_refs()
869 ret = add_direct_ref(fs_info, preftrees, ref->level + 1, in add_delayed_refs()
892 ret = add_indirect_ref(fs_info, preftrees, ref->root, in add_delayed_refs()
903 ret = add_direct_ref(fs_info, preftrees, 0, ref->parent, in add_delayed_refs()
932 int *info_level, struct preftrees *preftrees, in add_inline_refs() argument
991 ret = add_direct_ref(fs_info, preftrees, in add_inline_refs()
1002 ret = add_direct_ref(fs_info, preftrees, 0, offset, in add_inline_refs()
1007 ret = add_indirect_ref(fs_info, preftrees, offset, in add_inline_refs()
1030 ret = add_indirect_ref(fs_info, preftrees, root, in add_inline_refs()
1053 int info_level, struct preftrees *preftrees, in add_keyed_refs() argument
1085 ret = add_direct_ref(fs_info, preftrees, in add_keyed_refs()
1097 ret = add_direct_ref(fs_info, preftrees, 0, in add_keyed_refs()
1104 ret = add_indirect_ref(fs_info, preftrees, key.offset, in add_keyed_refs()
1128 ret = add_indirect_ref(fs_info, preftrees, root, in add_keyed_refs()
1181 struct preftrees preftrees = { local
1249 &preftrees, sc);
1270 &info_level, &preftrees, sc);
1274 &preftrees, sc);
1282 ret = add_missing_keys(fs_info, &preftrees, path->skip_locking == 0);
1286 WARN_ON(!RB_EMPTY_ROOT(&preftrees.indirect_missing_keys.root.rb_root));
1288 ret = resolve_indirect_refs(fs_info, path, time_seq, &preftrees,
1293 WARN_ON(!RB_EMPTY_ROOT(&preftrees.indirect.root.rb_root));
1302 node = rb_first_cached(&preftrees.direct.root);
1380 prelim_release(&preftrees.direct);
1381 prelim_release(&preftrees.indirect);
1382 prelim_release(&preftrees.indirect_missing_keys);