Lines Matching refs:fs_info

218 static void __print_stack_trace(struct btrfs_fs_info *fs_info,  in __print_stack_trace()  argument
224 btrfs_err(fs_info, " ref-verify: no stacktrace"); in __print_stack_trace()
236 static void inline __print_stack_trace(struct btrfs_fs_info *fs_info, in __print_stack_trace() argument
239 btrfs_err(fs_info, " ref-verify: no stacktrace support"); in __print_stack_trace()
271 static struct block_entry *add_block_entry(struct btrfs_fs_info *fs_info, in add_block_entry() argument
291 spin_lock(&fs_info->ref_verify_lock); in add_block_entry()
292 exist = insert_block_entry(&fs_info->block_tree, be); in add_block_entry()
318 static int add_tree_block(struct btrfs_fs_info *fs_info, u64 ref_root, in add_tree_block() argument
338 be = add_block_entry(fs_info, bytenr, fs_info->nodesize, ref_root); in add_tree_block()
358 spin_unlock(&fs_info->ref_verify_lock); in add_tree_block()
363 static int add_shared_data_ref(struct btrfs_fs_info *fs_info, in add_shared_data_ref() argument
373 be = add_block_entry(fs_info, bytenr, num_bytes, 0); in add_shared_data_ref()
383 spin_unlock(&fs_info->ref_verify_lock); in add_shared_data_ref()
384 btrfs_err(fs_info, "existing shared ref when reading from disk?"); in add_shared_data_ref()
388 spin_unlock(&fs_info->ref_verify_lock); in add_shared_data_ref()
392 static int add_extent_data_ref(struct btrfs_fs_info *fs_info, in add_extent_data_ref() argument
408 be = add_block_entry(fs_info, bytenr, num_bytes, ref_root); in add_extent_data_ref()
421 spin_unlock(&fs_info->ref_verify_lock); in add_extent_data_ref()
422 btrfs_err(fs_info, "existing ref when reading from disk?"); in add_extent_data_ref()
429 spin_unlock(&fs_info->ref_verify_lock); in add_extent_data_ref()
430 btrfs_err(fs_info, "missing root in new block entry?"); in add_extent_data_ref()
434 spin_unlock(&fs_info->ref_verify_lock); in add_extent_data_ref()
438 static int process_extent_item(struct btrfs_fs_info *fs_info, in process_extent_item() argument
476 ret = add_tree_block(fs_info, offset, 0, key->objectid, in process_extent_item()
480 ret = add_tree_block(fs_info, 0, offset, key->objectid, in process_extent_item()
485 ret = add_extent_data_ref(fs_info, leaf, dref, in process_extent_item()
491 ret = add_shared_data_ref(fs_info, offset, count, in process_extent_item()
495 btrfs_err(fs_info, "invalid key type in iref"); in process_extent_item()
509 struct btrfs_fs_info *fs_info = root->fs_info; in process_leaf() local
525 ret = process_extent_item(fs_info, path, &key, i, in process_leaf()
529 ret = add_tree_block(fs_info, key.offset, 0, in process_leaf()
533 ret = add_tree_block(fs_info, 0, key.offset, in process_leaf()
539 ret = add_extent_data_ref(fs_info, leaf, dref, *bytenr, in process_leaf()
546 ret = add_shared_data_ref(fs_info, key.offset, count, in process_leaf()
562 struct btrfs_fs_info *fs_info = root->fs_info; in walk_down_tree() local
577 eb = read_tree_block(fs_info, block_bytenr, gen, in walk_down_tree()
626 static void dump_ref_action(struct btrfs_fs_info *fs_info, in dump_ref_action() argument
629 btrfs_err(fs_info, in dump_ref_action()
633 __print_stack_trace(fs_info, ra); in dump_ref_action()
640 static void dump_block_entry(struct btrfs_fs_info *fs_info, in dump_block_entry() argument
648 btrfs_err(fs_info, in dump_block_entry()
655 btrfs_err(fs_info, in dump_block_entry()
663 btrfs_err(fs_info, " root entry %llu, num_refs %llu", in dump_block_entry()
668 dump_ref_action(fs_info, ra); in dump_block_entry()
692 struct btrfs_fs_info *fs_info = root->fs_info; in btrfs_ref_tree_mod() local
700 if (!btrfs_test_opt(root->fs_info, REF_VERIFY)) in btrfs_ref_tree_mod()
748 be = add_block_entry(root->fs_info, bytenr, num_bytes, ref_root); in btrfs_ref_tree_mod()
759 btrfs_err(fs_info, in btrfs_ref_tree_mod()
761 dump_block_entry(fs_info, be); in btrfs_ref_tree_mod()
762 dump_ref_action(fs_info, ra); in btrfs_ref_tree_mod()
795 spin_lock(&root->fs_info->ref_verify_lock); in btrfs_ref_tree_mod()
796 be = lookup_block_entry(&root->fs_info->block_tree, bytenr); in btrfs_ref_tree_mod()
798 btrfs_err(fs_info, in btrfs_ref_tree_mod()
802 dump_ref_action(fs_info, ra); in btrfs_ref_tree_mod()
821 btrfs_err(fs_info, in btrfs_ref_tree_mod()
823 dump_block_entry(fs_info, be); in btrfs_ref_tree_mod()
824 dump_ref_action(fs_info, ra); in btrfs_ref_tree_mod()
836 btrfs_err(fs_info, in btrfs_ref_tree_mod()
838 dump_block_entry(fs_info, be); in btrfs_ref_tree_mod()
839 dump_ref_action(fs_info, ra); in btrfs_ref_tree_mod()
846 btrfs_err(fs_info, in btrfs_ref_tree_mod()
848 dump_block_entry(fs_info, be); in btrfs_ref_tree_mod()
849 dump_ref_action(fs_info, ra); in btrfs_ref_tree_mod()
864 btrfs_err(fs_info, "failed to find root %llu for %llu", in btrfs_ref_tree_mod()
866 dump_block_entry(fs_info, be); in btrfs_ref_tree_mod()
867 dump_ref_action(fs_info, ra); in btrfs_ref_tree_mod()
884 spin_unlock(&root->fs_info->ref_verify_lock); in btrfs_ref_tree_mod()
887 btrfs_clear_opt(fs_info->mount_opt, REF_VERIFY); in btrfs_ref_tree_mod()
892 void btrfs_free_ref_cache(struct btrfs_fs_info *fs_info) in btrfs_free_ref_cache() argument
897 if (!btrfs_test_opt(fs_info, REF_VERIFY)) in btrfs_free_ref_cache()
900 spin_lock(&fs_info->ref_verify_lock); in btrfs_free_ref_cache()
901 while ((n = rb_first(&fs_info->block_tree))) { in btrfs_free_ref_cache()
903 rb_erase(&be->node, &fs_info->block_tree); in btrfs_free_ref_cache()
905 cond_resched_lock(&fs_info->ref_verify_lock); in btrfs_free_ref_cache()
907 spin_unlock(&fs_info->ref_verify_lock); in btrfs_free_ref_cache()
910 void btrfs_free_ref_tree_range(struct btrfs_fs_info *fs_info, u64 start, in btrfs_free_ref_tree_range() argument
916 if (!btrfs_test_opt(fs_info, REF_VERIFY)) in btrfs_free_ref_tree_range()
919 spin_lock(&fs_info->ref_verify_lock); in btrfs_free_ref_tree_range()
920 n = fs_info->block_tree.rb_node; in btrfs_free_ref_tree_range()
943 spin_unlock(&fs_info->ref_verify_lock); in btrfs_free_ref_tree_range()
952 btrfs_err(fs_info, in btrfs_free_ref_tree_range()
955 dump_block_entry(fs_info, be); in btrfs_free_ref_tree_range()
963 btrfs_err(fs_info, in btrfs_free_ref_tree_range()
966 dump_block_entry(fs_info, be); in btrfs_free_ref_tree_range()
968 rb_erase(&be->node, &fs_info->block_tree); in btrfs_free_ref_tree_range()
971 spin_unlock(&fs_info->ref_verify_lock); in btrfs_free_ref_tree_range()
975 int btrfs_build_ref_tree(struct btrfs_fs_info *fs_info) in btrfs_build_ref_tree() argument
982 if (!btrfs_test_opt(fs_info, REF_VERIFY)) in btrfs_build_ref_tree()
989 eb = btrfs_read_lock_root_node(fs_info->extent_root); in btrfs_build_ref_tree()
1003 ret = walk_down_tree(fs_info->extent_root, path, level, in btrfs_build_ref_tree()
1016 btrfs_clear_opt(fs_info->mount_opt, REF_VERIFY); in btrfs_build_ref_tree()
1017 btrfs_free_ref_cache(fs_info); in btrfs_build_ref_tree()