Lines Matching defs:fs_info

211 static void __print_stack_trace(struct btrfs_fs_info *fs_info,
215 btrfs_err(fs_info, " ref-verify: no stacktrace");
225 static void inline __print_stack_trace(struct btrfs_fs_info *fs_info,
228 btrfs_err(fs_info, " ref-verify: no stacktrace support");
260 static struct block_entry *add_block_entry(struct btrfs_fs_info *fs_info,
280 spin_lock(&fs_info->ref_verify_lock);
281 exist = insert_block_entry(&fs_info->block_tree, be);
309 static int add_tree_block(struct btrfs_fs_info *fs_info, u64 ref_root,
329 be = add_block_entry(fs_info, bytenr, fs_info->nodesize, ref_root);
349 spin_unlock(&fs_info->ref_verify_lock);
354 static int add_shared_data_ref(struct btrfs_fs_info *fs_info,
364 be = add_block_entry(fs_info, bytenr, num_bytes, 0);
374 spin_unlock(&fs_info->ref_verify_lock);
375 btrfs_err(fs_info, "existing shared ref when reading from disk?");
379 spin_unlock(&fs_info->ref_verify_lock);
383 static int add_extent_data_ref(struct btrfs_fs_info *fs_info,
399 be = add_block_entry(fs_info, bytenr, num_bytes, ref_root);
412 spin_unlock(&fs_info->ref_verify_lock);
413 btrfs_err(fs_info, "existing ref when reading from disk?");
420 spin_unlock(&fs_info->ref_verify_lock);
421 btrfs_err(fs_info, "missing root in new block entry?");
425 spin_unlock(&fs_info->ref_verify_lock);
429 static int process_extent_item(struct btrfs_fs_info *fs_info,
467 ret = add_tree_block(fs_info, offset, 0, key->objectid,
471 ret = add_tree_block(fs_info, 0, offset, key->objectid,
476 ret = add_extent_data_ref(fs_info, leaf, dref,
482 ret = add_shared_data_ref(fs_info, offset, count,
486 btrfs_err(fs_info, "invalid key type in iref");
500 struct btrfs_fs_info *fs_info = root->fs_info;
517 ret = process_extent_item(fs_info, path, &key, i,
521 ret = add_tree_block(fs_info, key.offset, 0,
525 ret = add_tree_block(fs_info, 0, key.offset,
531 ret = add_extent_data_ref(fs_info, leaf, dref, *bytenr,
538 ret = add_shared_data_ref(fs_info, key.offset, count,
554 struct btrfs_fs_info *fs_info = root->fs_info;
569 eb = read_tree_block(fs_info, block_bytenr, gen,
618 static void dump_ref_action(struct btrfs_fs_info *fs_info,
621 btrfs_err(fs_info,
625 __print_stack_trace(fs_info, ra);
632 static void dump_block_entry(struct btrfs_fs_info *fs_info,
640 btrfs_err(fs_info,
647 btrfs_err(fs_info,
655 btrfs_err(fs_info, " root entry %llu, num_refs %llu",
660 dump_ref_action(fs_info, ra);
671 int btrfs_ref_tree_mod(struct btrfs_fs_info *fs_info,
688 if (!btrfs_test_opt(fs_info, REF_VERIFY))
747 be = add_block_entry(fs_info, bytenr, num_bytes, ref_root);
759 btrfs_err(fs_info,
761 dump_block_entry(fs_info, be);
762 dump_ref_action(fs_info, ra);
797 spin_lock(&fs_info->ref_verify_lock);
798 be = lookup_block_entry(&fs_info->block_tree, bytenr);
800 btrfs_err(fs_info,
804 dump_ref_action(fs_info, ra);
810 btrfs_err(fs_info,
813 dump_block_entry(fs_info, be);
814 dump_ref_action(fs_info, ra);
834 btrfs_err(fs_info,
836 dump_block_entry(fs_info, be);
837 dump_ref_action(fs_info, ra);
850 btrfs_err(fs_info,
852 dump_block_entry(fs_info, be);
853 dump_ref_action(fs_info, ra);
861 btrfs_err(fs_info,
863 dump_block_entry(fs_info, be);
864 dump_ref_action(fs_info, ra);
880 btrfs_err(fs_info, "failed to find root %llu for %llu",
882 dump_block_entry(fs_info, be);
883 dump_ref_action(fs_info, ra);
900 spin_unlock(&fs_info->ref_verify_lock);
903 btrfs_free_ref_cache(fs_info);
904 btrfs_clear_opt(fs_info->mount_opt, REF_VERIFY);
910 void btrfs_free_ref_cache(struct btrfs_fs_info *fs_info)
915 if (!btrfs_test_opt(fs_info, REF_VERIFY))
918 spin_lock(&fs_info->ref_verify_lock);
919 while ((n = rb_first(&fs_info->block_tree))) {
921 rb_erase(&be->node, &fs_info->block_tree);
923 cond_resched_lock(&fs_info->ref_verify_lock);
925 spin_unlock(&fs_info->ref_verify_lock);
928 void btrfs_free_ref_tree_range(struct btrfs_fs_info *fs_info, u64 start,
934 if (!btrfs_test_opt(fs_info, REF_VERIFY))
937 spin_lock(&fs_info->ref_verify_lock);
938 n = fs_info->block_tree.rb_node;
961 spin_unlock(&fs_info->ref_verify_lock);
970 btrfs_err(fs_info,
973 dump_block_entry(fs_info, be);
981 btrfs_err(fs_info,
984 dump_block_entry(fs_info, be);
986 rb_erase(&be->node, &fs_info->block_tree);
989 spin_unlock(&fs_info->ref_verify_lock);
993 int btrfs_build_ref_tree(struct btrfs_fs_info *fs_info)
1000 if (!btrfs_test_opt(fs_info, REF_VERIFY))
1007 eb = btrfs_read_lock_root_node(fs_info->extent_root);
1021 ret = walk_down_tree(fs_info->extent_root, path, level,
1034 btrfs_free_ref_cache(fs_info);
1035 btrfs_clear_opt(fs_info->mount_opt, REF_VERIFY);