struct list_head all_blocks_list;
        struct btrfsic_block_hashtable block_hashtable;
        struct btrfsic_block_link_hashtable block_link_hashtable;
-       struct btrfs_root *root;
+       struct btrfs_fs_info *fs_info;
        u64 max_superblock_generation;
        struct btrfsic_block *latest_superblock;
        u32 metablock_size;
                }
 
                num_copies =
-                   btrfs_num_copies(state->root->fs_info,
+                   btrfs_num_copies(state->fs_info,
                                     next_bytenr, state->metablock_size);
                if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES)
                        pr_info("num_copies(log_bytenr=%llu) = %d\n",
                }
 
                num_copies =
-                   btrfs_num_copies(state->root->fs_info,
+                   btrfs_num_copies(state->fs_info,
                                     next_bytenr, state->metablock_size);
                if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES)
                        pr_info("num_copies(log_bytenr=%llu) = %d\n",
        *next_blockp = NULL;
        if (0 == *num_copiesp) {
                *num_copiesp =
-                   btrfs_num_copies(state->root->fs_info,
+                   btrfs_num_copies(state->fs_info,
                                     next_bytenr, state->metablock_size);
                if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES)
                        pr_info("num_copies(log_bytenr=%llu) = %d\n",
                        chunk_len = num_bytes;
 
                num_copies =
-                   btrfs_num_copies(state->root->fs_info,
+                   btrfs_num_copies(state->fs_info,
                                     next_bytenr, state->datablock_size);
                if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES)
                        pr_info("num_copies(log_bytenr=%llu) = %d\n",
        struct btrfs_device *device;
 
        length = len;
-       ret = btrfs_map_block(state->root->fs_info, BTRFS_MAP_READ,
+       ret = btrfs_map_block(state->fs_info, BTRFS_MAP_READ,
                              bytenr, &length, &multi, mirror_num);
 
        if (ret) {
        num_pages = state->metablock_size >> PAGE_SHIFT;
        h = (struct btrfs_header *)datav[0];
 
-       if (memcmp(h->fsid, state->root->fs_info->fsid, BTRFS_UUID_SIZE))
+       if (memcmp(h->fsid, state->fs_info->fsid, BTRFS_UUID_SIZE))
                return 1;
 
        for (i = 0; i < num_pages; i++) {
                }
 
                num_copies =
-                   btrfs_num_copies(state->root->fs_info,
+                   btrfs_num_copies(state->fs_info,
                                     next_bytenr, BTRFS_SUPER_INFO_SIZE);
                if (state->print_mask & BTRFSIC_PRINT_MASK_NUM_COPIES)
                        pr_info("num_copies(log_bytenr=%llu) = %d\n",
        struct btrfsic_block_data_ctx block_ctx;
        int match = 0;
 
-       num_copies = btrfs_num_copies(state->root->fs_info,
+       num_copies = btrfs_num_copies(state->fs_info,
                                      bytenr, state->metablock_size);
 
        for (mirror_num = 1; mirror_num <= num_copies; mirror_num++) {
                btrfsic_is_initialized = 1;
        }
        mutex_lock(&btrfsic_mutex);
-       state->root = root;
+       state->fs_info = root->fs_info;
        state->print_mask = print_mask;
        state->include_extent_data = including_extent_data;
        state->csum_size = 0;