• Home
  • Raw
  • Download

Lines Matching refs:fs_info

211 static void __print_stack_trace(struct btrfs_fs_info *fs_info,  in __print_stack_trace()  argument
215 btrfs_err(fs_info, " ref-verify: no stacktrace"); in __print_stack_trace()
225 static void inline __print_stack_trace(struct btrfs_fs_info *fs_info, in __print_stack_trace() argument
228 btrfs_err(fs_info, " ref-verify: no stacktrace support"); in __print_stack_trace()
260 static struct block_entry *add_block_entry(struct btrfs_fs_info *fs_info, in add_block_entry() argument
280 spin_lock(&fs_info->ref_verify_lock); in add_block_entry()
281 exist = insert_block_entry(&fs_info->block_tree, be); in add_block_entry()
307 static int add_tree_block(struct btrfs_fs_info *fs_info, u64 ref_root, in add_tree_block() argument
327 be = add_block_entry(fs_info, bytenr, fs_info->nodesize, ref_root); in add_tree_block()
347 spin_unlock(&fs_info->ref_verify_lock); in add_tree_block()
352 static int add_shared_data_ref(struct btrfs_fs_info *fs_info, in add_shared_data_ref() argument
362 be = add_block_entry(fs_info, bytenr, num_bytes, 0); in add_shared_data_ref()
372 spin_unlock(&fs_info->ref_verify_lock); in add_shared_data_ref()
373 btrfs_err(fs_info, "existing shared ref when reading from disk?"); in add_shared_data_ref()
377 spin_unlock(&fs_info->ref_verify_lock); in add_shared_data_ref()
381 static int add_extent_data_ref(struct btrfs_fs_info *fs_info, in add_extent_data_ref() argument
397 be = add_block_entry(fs_info, bytenr, num_bytes, ref_root); in add_extent_data_ref()
410 spin_unlock(&fs_info->ref_verify_lock); in add_extent_data_ref()
411 btrfs_err(fs_info, "existing ref when reading from disk?"); in add_extent_data_ref()
418 spin_unlock(&fs_info->ref_verify_lock); in add_extent_data_ref()
419 btrfs_err(fs_info, "missing root in new block entry?"); in add_extent_data_ref()
423 spin_unlock(&fs_info->ref_verify_lock); in add_extent_data_ref()
427 static int process_extent_item(struct btrfs_fs_info *fs_info, in process_extent_item() argument
465 ret = add_tree_block(fs_info, offset, 0, key->objectid, in process_extent_item()
469 ret = add_tree_block(fs_info, 0, offset, key->objectid, in process_extent_item()
474 ret = add_extent_data_ref(fs_info, leaf, dref, in process_extent_item()
480 ret = add_shared_data_ref(fs_info, offset, count, in process_extent_item()
484 btrfs_err(fs_info, "invalid key type in iref"); in process_extent_item()
498 struct btrfs_fs_info *fs_info = root->fs_info; in process_leaf() local
515 ret = process_extent_item(fs_info, path, &key, i, in process_leaf()
519 ret = add_tree_block(fs_info, key.offset, 0, in process_leaf()
523 ret = add_tree_block(fs_info, 0, key.offset, in process_leaf()
529 ret = add_extent_data_ref(fs_info, leaf, dref, *bytenr, in process_leaf()
536 ret = add_shared_data_ref(fs_info, key.offset, count, in process_leaf()
552 struct btrfs_fs_info *fs_info = root->fs_info; in walk_down_tree() local
567 eb = read_tree_block(fs_info, block_bytenr, gen, in walk_down_tree()
616 static void dump_ref_action(struct btrfs_fs_info *fs_info, in dump_ref_action() argument
619 btrfs_err(fs_info, in dump_ref_action()
623 __print_stack_trace(fs_info, ra); in dump_ref_action()
630 static void dump_block_entry(struct btrfs_fs_info *fs_info, in dump_block_entry() argument
638 btrfs_err(fs_info, in dump_block_entry()
645 btrfs_err(fs_info, in dump_block_entry()
653 btrfs_err(fs_info, " root entry %llu, num_refs %llu", in dump_block_entry()
658 dump_ref_action(fs_info, ra); in dump_block_entry()
669 int btrfs_ref_tree_mod(struct btrfs_fs_info *fs_info, in btrfs_ref_tree_mod() argument
686 if (!btrfs_test_opt(fs_info, REF_VERIFY)) in btrfs_ref_tree_mod()
745 be = add_block_entry(fs_info, bytenr, num_bytes, ref_root); in btrfs_ref_tree_mod()
756 btrfs_err(fs_info, in btrfs_ref_tree_mod()
758 dump_block_entry(fs_info, be); in btrfs_ref_tree_mod()
759 dump_ref_action(fs_info, ra); in btrfs_ref_tree_mod()
792 spin_lock(&fs_info->ref_verify_lock); in btrfs_ref_tree_mod()
793 be = lookup_block_entry(&fs_info->block_tree, bytenr); in btrfs_ref_tree_mod()
795 btrfs_err(fs_info, in btrfs_ref_tree_mod()
799 dump_ref_action(fs_info, ra); in btrfs_ref_tree_mod()
818 btrfs_err(fs_info, in btrfs_ref_tree_mod()
820 dump_block_entry(fs_info, be); in btrfs_ref_tree_mod()
821 dump_ref_action(fs_info, ra); in btrfs_ref_tree_mod()
833 btrfs_err(fs_info, in btrfs_ref_tree_mod()
835 dump_block_entry(fs_info, be); in btrfs_ref_tree_mod()
836 dump_ref_action(fs_info, ra); in btrfs_ref_tree_mod()
843 btrfs_err(fs_info, in btrfs_ref_tree_mod()
845 dump_block_entry(fs_info, be); in btrfs_ref_tree_mod()
846 dump_ref_action(fs_info, ra); in btrfs_ref_tree_mod()
861 btrfs_err(fs_info, "failed to find root %llu for %llu", in btrfs_ref_tree_mod()
863 dump_block_entry(fs_info, be); in btrfs_ref_tree_mod()
864 dump_ref_action(fs_info, ra); in btrfs_ref_tree_mod()
881 spin_unlock(&fs_info->ref_verify_lock); in btrfs_ref_tree_mod()
884 btrfs_clear_opt(fs_info->mount_opt, REF_VERIFY); in btrfs_ref_tree_mod()
889 void btrfs_free_ref_cache(struct btrfs_fs_info *fs_info) in btrfs_free_ref_cache() argument
894 if (!btrfs_test_opt(fs_info, REF_VERIFY)) in btrfs_free_ref_cache()
897 spin_lock(&fs_info->ref_verify_lock); in btrfs_free_ref_cache()
898 while ((n = rb_first(&fs_info->block_tree))) { in btrfs_free_ref_cache()
900 rb_erase(&be->node, &fs_info->block_tree); in btrfs_free_ref_cache()
902 cond_resched_lock(&fs_info->ref_verify_lock); in btrfs_free_ref_cache()
904 spin_unlock(&fs_info->ref_verify_lock); in btrfs_free_ref_cache()
907 void btrfs_free_ref_tree_range(struct btrfs_fs_info *fs_info, u64 start, in btrfs_free_ref_tree_range() argument
913 if (!btrfs_test_opt(fs_info, REF_VERIFY)) in btrfs_free_ref_tree_range()
916 spin_lock(&fs_info->ref_verify_lock); in btrfs_free_ref_tree_range()
917 n = fs_info->block_tree.rb_node; in btrfs_free_ref_tree_range()
940 spin_unlock(&fs_info->ref_verify_lock); in btrfs_free_ref_tree_range()
949 btrfs_err(fs_info, in btrfs_free_ref_tree_range()
952 dump_block_entry(fs_info, be); in btrfs_free_ref_tree_range()
960 btrfs_err(fs_info, in btrfs_free_ref_tree_range()
963 dump_block_entry(fs_info, be); in btrfs_free_ref_tree_range()
965 rb_erase(&be->node, &fs_info->block_tree); in btrfs_free_ref_tree_range()
968 spin_unlock(&fs_info->ref_verify_lock); in btrfs_free_ref_tree_range()
972 int btrfs_build_ref_tree(struct btrfs_fs_info *fs_info) in btrfs_build_ref_tree() argument
979 if (!btrfs_test_opt(fs_info, REF_VERIFY)) in btrfs_build_ref_tree()
986 eb = btrfs_read_lock_root_node(fs_info->extent_root); in btrfs_build_ref_tree()
1000 ret = walk_down_tree(fs_info->extent_root, path, level, in btrfs_build_ref_tree()
1013 btrfs_clear_opt(fs_info->mount_opt, REF_VERIFY); in btrfs_build_ref_tree()
1014 btrfs_free_ref_cache(fs_info); in btrfs_build_ref_tree()