Merge branch 'pm-cpuidle'
[linux-2.6-microblaze.git] / fs / btrfs / tests / btrfs-tests.c
index 5efd800..999c14e 100644 (file)
@@ -120,6 +120,8 @@ struct btrfs_fs_info *btrfs_alloc_dummy_fs_info(u32 nodesize, u32 sectorsize)
                kfree(fs_info);
                return NULL;
        }
+       INIT_LIST_HEAD(&fs_info->fs_devices->devices);
+
        fs_info->super_copy = kzalloc(sizeof(struct btrfs_super_block),
                                      GFP_KERNEL);
        if (!fs_info->super_copy) {
@@ -128,39 +130,10 @@ struct btrfs_fs_info *btrfs_alloc_dummy_fs_info(u32 nodesize, u32 sectorsize)
                return NULL;
        }
 
+       btrfs_init_fs_info(fs_info);
+
        fs_info->nodesize = nodesize;
        fs_info->sectorsize = sectorsize;
-
-       if (init_srcu_struct(&fs_info->subvol_srcu)) {
-               kfree(fs_info->fs_devices);
-               kfree(fs_info->super_copy);
-               kfree(fs_info);
-               return NULL;
-       }
-
-       spin_lock_init(&fs_info->buffer_lock);
-       spin_lock_init(&fs_info->qgroup_lock);
-       spin_lock_init(&fs_info->super_lock);
-       spin_lock_init(&fs_info->fs_roots_radix_lock);
-       mutex_init(&fs_info->qgroup_ioctl_lock);
-       mutex_init(&fs_info->qgroup_rescan_lock);
-       rwlock_init(&fs_info->tree_mod_log_lock);
-       fs_info->running_transaction = NULL;
-       fs_info->qgroup_tree = RB_ROOT;
-       fs_info->qgroup_ulist = NULL;
-       atomic64_set(&fs_info->tree_mod_seq, 0);
-       INIT_LIST_HEAD(&fs_info->dirty_qgroups);
-       INIT_LIST_HEAD(&fs_info->dead_roots);
-       INIT_LIST_HEAD(&fs_info->tree_mod_seq_list);
-       INIT_LIST_HEAD(&fs_info->fs_devices->devices);
-       INIT_RADIX_TREE(&fs_info->buffer_radix, GFP_ATOMIC);
-       INIT_RADIX_TREE(&fs_info->fs_roots_radix, GFP_ATOMIC);
-       extent_io_tree_init(fs_info, &fs_info->freed_extents[0],
-                           IO_TREE_FS_INFO_FREED_EXTENTS0, NULL);
-       extent_io_tree_init(fs_info, &fs_info->freed_extents[1],
-                           IO_TREE_FS_INFO_FREED_EXTENTS1, NULL);
-       extent_map_tree_init(&fs_info->mapping_tree);
-       fs_info->pinned_extents = &fs_info->freed_extents[0];
        set_bit(BTRFS_FS_STATE_DUMMY_FS_INFO, &fs_info->fs_state);
 
        test_mnt->mnt_sb->s_fs_info = fs_info;
@@ -210,8 +183,9 @@ void btrfs_free_dummy_fs_info(struct btrfs_fs_info *fs_info)
        }
        btrfs_free_qgroup_config(fs_info);
        btrfs_free_fs_roots(fs_info);
-       cleanup_srcu_struct(&fs_info->subvol_srcu);
        kfree(fs_info->super_copy);
+       btrfs_check_leaked_roots(fs_info);
+       btrfs_extent_buffer_leak_debug_check(fs_info);
        kfree(fs_info->fs_devices);
        kfree(fs_info);
 }
@@ -223,11 +197,7 @@ void btrfs_free_dummy_root(struct btrfs_root *root)
        /* Will be freed by btrfs_free_fs_roots */
        if (WARN_ON(test_bit(BTRFS_ROOT_IN_RADIX, &root->state)))
                return;
-       if (root->node) {
-               /* One for allocate_extent_buffer */
-               free_extent_buffer(root->node);
-       }
-       btrfs_put_fs_root(root);
+       btrfs_put_root(root);
 }
 
 struct btrfs_block_group *