int btrfs_test_free_space_cache(void) { struct btrfs_block_group_cache *cache; int ret; test_msg("Running btrfs free space cache tests\n"); cache = init_test_block_group(); if (!cache) { test_msg("Couldn't run the tests\n"); return 0; } ret = test_extents(cache); if (ret) goto out; ret = test_bitmaps(cache); if (ret) goto out; ret = test_bitmaps_and_extents(cache); if (ret) goto out; out: __btrfs_remove_free_space_cache(cache->free_space_ctl); kfree(cache->free_space_ctl); kfree(cache); test_msg("Free space cache tests finished\n"); return ret; }
int btrfs_test_free_space_cache(void) { struct btrfs_block_group_cache *cache; struct btrfs_root *root = NULL; int ret = -ENOMEM; test_msg("Running btrfs free space cache tests\n"); cache = init_test_block_group(); if (!cache) { test_msg("Couldn't run the tests\n"); return 0; } root = btrfs_alloc_dummy_root(); if (!root) goto out; root->fs_info = btrfs_alloc_dummy_fs_info(); if (!root->fs_info) goto out; root->fs_info->extent_root = root; cache->fs_info = root->fs_info; ret = test_extents(cache); if (ret) goto out; ret = test_bitmaps(cache); if (ret) goto out; ret = test_bitmaps_and_extents(cache); if (ret) goto out; ret = test_steal_space_from_bitmap_to_extent(cache); out: __btrfs_remove_free_space_cache(cache->free_space_ctl); kfree(cache->free_space_ctl); kfree(cache); btrfs_free_dummy_root(root); test_msg("Free space cache tests finished\n"); return ret; }