Lines Matching defs:fs_info

214 static void __print_stack_trace(struct btrfs_fs_info *fs_info,
218 btrfs_err(fs_info, " ref-verify: no stacktrace");
228 static inline void __print_stack_trace(struct btrfs_fs_info *fs_info,
231 btrfs_err(fs_info, " ref-verify: no stacktrace support");
263 static struct block_entry *add_block_entry(struct btrfs_fs_info *fs_info,
283 spin_lock(&fs_info->ref_verify_lock);
284 exist = insert_block_entry(&fs_info->block_tree, be);
312 static int add_tree_block(struct btrfs_fs_info *fs_info, u64 ref_root,
332 be = add_block_entry(fs_info, bytenr, fs_info->nodesize, ref_root);
352 spin_unlock(&fs_info->ref_verify_lock);
357 static int add_shared_data_ref(struct btrfs_fs_info *fs_info,
367 be = add_block_entry(fs_info, bytenr, num_bytes, 0);
377 spin_unlock(&fs_info->ref_verify_lock);
378 btrfs_err(fs_info, "existing shared ref when reading from disk?");
382 spin_unlock(&fs_info->ref_verify_lock);
386 static int add_extent_data_ref(struct btrfs_fs_info *fs_info,
402 be = add_block_entry(fs_info, bytenr, num_bytes, ref_root);
415 spin_unlock(&fs_info->ref_verify_lock);
416 btrfs_err(fs_info, "existing ref when reading from disk?");
423 spin_unlock(&fs_info->ref_verify_lock);
424 btrfs_err(fs_info, "missing root in new block entry?");
428 spin_unlock(&fs_info->ref_verify_lock);
432 static int process_extent_item(struct btrfs_fs_info *fs_info,
470 ret = add_tree_block(fs_info, offset, 0, key->objectid,
474 ret = add_tree_block(fs_info, 0, offset, key->objectid,
479 ret = add_extent_data_ref(fs_info, leaf, dref,
485 ret = add_shared_data_ref(fs_info, offset, count,
489 btrfs_err(fs_info, "invalid key type in iref");
504 struct btrfs_fs_info *fs_info = root->fs_info;
521 ret = process_extent_item(fs_info, path, &key, i,
525 ret = add_tree_block(fs_info, key.offset, 0,
529 ret = add_tree_block(fs_info, 0, key.offset,
535 ret = add_extent_data_ref(fs_info, leaf, dref, *bytenr,
542 ret = add_shared_data_ref(fs_info, key.offset, count,
609 static void dump_ref_action(struct btrfs_fs_info *fs_info,
612 btrfs_err(fs_info,
616 __print_stack_trace(fs_info, ra);
623 static void dump_block_entry(struct btrfs_fs_info *fs_info,
631 btrfs_err(fs_info,
638 btrfs_err(fs_info,
646 btrfs_err(fs_info, " root entry %llu, num_refs %llu",
651 dump_ref_action(fs_info, ra);
662 int btrfs_ref_tree_mod(struct btrfs_fs_info *fs_info,
679 if (!btrfs_test_opt(fs_info, REF_VERIFY))
735 be = add_block_entry(fs_info, bytenr, num_bytes, ref_root);
747 btrfs_err(fs_info,
749 dump_block_entry(fs_info, be);
750 dump_ref_action(fs_info, ra);
785 spin_lock(&fs_info->ref_verify_lock);
786 be = lookup_block_entry(&fs_info->block_tree, bytenr);
788 btrfs_err(fs_info,
791 dump_ref_action(fs_info, ra);
797 btrfs_err(fs_info,
800 dump_block_entry(fs_info, be);
801 dump_ref_action(fs_info, ra);
821 btrfs_err(fs_info,
823 dump_block_entry(fs_info, be);
824 dump_ref_action(fs_info, ra);
837 btrfs_err(fs_info,
839 dump_block_entry(fs_info, be);
840 dump_ref_action(fs_info, ra);
848 btrfs_err(fs_info,
850 dump_block_entry(fs_info, be);
851 dump_ref_action(fs_info, ra);
867 btrfs_err(fs_info, "failed to find root %llu for %llu",
869 dump_block_entry(fs_info, be);
870 dump_ref_action(fs_info, ra);
887 spin_unlock(&fs_info->ref_verify_lock);
890 btrfs_free_ref_cache(fs_info);
891 btrfs_clear_opt(fs_info->mount_opt, REF_VERIFY);
897 void btrfs_free_ref_cache(struct btrfs_fs_info *fs_info)
902 if (!btrfs_test_opt(fs_info, REF_VERIFY))
905 spin_lock(&fs_info->ref_verify_lock);
906 while ((n = rb_first(&fs_info->block_tree))) {
908 rb_erase(&be->node, &fs_info->block_tree);
910 cond_resched_lock(&fs_info->ref_verify_lock);
912 spin_unlock(&fs_info->ref_verify_lock);
915 void btrfs_free_ref_tree_range(struct btrfs_fs_info *fs_info, u64 start,
921 if (!btrfs_test_opt(fs_info, REF_VERIFY))
924 spin_lock(&fs_info->ref_verify_lock);
925 n = fs_info->block_tree.rb_node;
948 spin_unlock(&fs_info->ref_verify_lock);
957 btrfs_err(fs_info,
960 dump_block_entry(fs_info, be);
968 btrfs_err(fs_info,
971 dump_block_entry(fs_info, be);
973 rb_erase(&be->node, &fs_info->block_tree);
976 spin_unlock(&fs_info->ref_verify_lock);
980 int btrfs_build_ref_tree(struct btrfs_fs_info *fs_info)
989 if (!btrfs_test_opt(fs_info, REF_VERIFY))
996 extent_root = btrfs_extent_root(fs_info, 0);
1023 btrfs_free_ref_cache(fs_info);
1024 btrfs_clear_opt(fs_info->mount_opt, REF_VERIFY);