diff options
Diffstat (limited to 'fs/btrfs/tests')
| -rw-r--r-- | fs/btrfs/tests/btrfs-tests.c | 11 | ||||
| -rw-r--r-- | fs/btrfs/tests/btrfs-tests.h | 4 | ||||
| -rw-r--r-- | fs/btrfs/tests/free-space-tests.c | 15 | ||||
| -rw-r--r-- | fs/btrfs/tests/free-space-tree-tests.c | 105 | ||||
| -rw-r--r-- | fs/btrfs/tests/qgroup-tests.c | 4 | 
5 files changed, 63 insertions, 76 deletions
diff --git a/fs/btrfs/tests/btrfs-tests.c b/fs/btrfs/tests/btrfs-tests.c index 99fe9bf3fdac..a7aca4141788 100644 --- a/fs/btrfs/tests/btrfs-tests.c +++ b/fs/btrfs/tests/btrfs-tests.c @@ -202,11 +202,11 @@ void btrfs_free_dummy_root(struct btrfs_root *root)  	kfree(root);  } -struct btrfs_block_group_cache * +struct btrfs_block_group *  btrfs_alloc_dummy_block_group(struct btrfs_fs_info *fs_info,  			      unsigned long length)  { -	struct btrfs_block_group_cache *cache; +	struct btrfs_block_group *cache;  	cache = kzalloc(sizeof(*cache), GFP_KERNEL);  	if (!cache) @@ -218,9 +218,8 @@ btrfs_alloc_dummy_block_group(struct btrfs_fs_info *fs_info,  		return NULL;  	} -	cache->key.objectid = 0; -	cache->key.offset = length; -	cache->key.type = BTRFS_BLOCK_GROUP_ITEM_KEY; +	cache->start = 0; +	cache->length = length;  	cache->full_stripe_len = fs_info->sectorsize;  	cache->fs_info = fs_info; @@ -233,7 +232,7 @@ btrfs_alloc_dummy_block_group(struct btrfs_fs_info *fs_info,  	return cache;  } -void btrfs_free_dummy_block_group(struct btrfs_block_group_cache *cache) +void btrfs_free_dummy_block_group(struct btrfs_block_group *cache)  {  	if (!cache)  		return; diff --git a/fs/btrfs/tests/btrfs-tests.h b/fs/btrfs/tests/btrfs-tests.h index ee277bbd939b..9e52527357d8 100644 --- a/fs/btrfs/tests/btrfs-tests.h +++ b/fs/btrfs/tests/btrfs-tests.h @@ -41,9 +41,9 @@ struct inode *btrfs_new_test_inode(void);  struct btrfs_fs_info *btrfs_alloc_dummy_fs_info(u32 nodesize, u32 sectorsize);  void btrfs_free_dummy_fs_info(struct btrfs_fs_info *fs_info);  void btrfs_free_dummy_root(struct btrfs_root *root); -struct btrfs_block_group_cache * +struct btrfs_block_group *  btrfs_alloc_dummy_block_group(struct btrfs_fs_info *fs_info, unsigned long length); -void btrfs_free_dummy_block_group(struct btrfs_block_group_cache *cache); +void btrfs_free_dummy_block_group(struct btrfs_block_group *cache);  void btrfs_init_dummy_trans(struct btrfs_trans_handle *trans,  			    struct btrfs_fs_info *fs_info);  #else diff --git a/fs/btrfs/tests/free-space-tests.c b/fs/btrfs/tests/free-space-tests.c index 43ec7060fcd2..aebdf23f0cdd 100644 --- a/fs/btrfs/tests/free-space-tests.c +++ b/fs/btrfs/tests/free-space-tests.c @@ -17,7 +17,7 @@   * entry and remove space from either end and the middle, and make sure we can   * remove space that covers adjacent extent entries.   */ -static int test_extents(struct btrfs_block_group_cache *cache) +static int test_extents(struct btrfs_block_group *cache)  {  	int ret = 0; @@ -87,8 +87,7 @@ static int test_extents(struct btrfs_block_group_cache *cache)  	return 0;  } -static int test_bitmaps(struct btrfs_block_group_cache *cache, -			u32 sectorsize) +static int test_bitmaps(struct btrfs_block_group *cache, u32 sectorsize)  {  	u64 next_bitmap_offset;  	int ret; @@ -156,7 +155,7 @@ static int test_bitmaps(struct btrfs_block_group_cache *cache,  }  /* This is the high grade jackassery */ -static int test_bitmaps_and_extents(struct btrfs_block_group_cache *cache, +static int test_bitmaps_and_extents(struct btrfs_block_group *cache,  				    u32 sectorsize)  {  	u64 bitmap_offset = (u64)(BITS_PER_BITMAP * sectorsize); @@ -331,7 +330,7 @@ static bool test_use_bitmap(struct btrfs_free_space_ctl *ctl,  /* Used by test_steal_space_from_bitmap_to_extent(). */  static int -check_num_extents_and_bitmaps(const struct btrfs_block_group_cache *cache, +check_num_extents_and_bitmaps(const struct btrfs_block_group *cache,  			      const int num_extents,  			      const int num_bitmaps)  { @@ -351,7 +350,7 @@ check_num_extents_and_bitmaps(const struct btrfs_block_group_cache *cache,  }  /* Used by test_steal_space_from_bitmap_to_extent(). */ -static int check_cache_empty(struct btrfs_block_group_cache *cache) +static int check_cache_empty(struct btrfs_block_group *cache)  {  	u64 offset;  	u64 max_extent_size; @@ -393,7 +392,7 @@ static int check_cache_empty(struct btrfs_block_group_cache *cache)   * requests.   */  static int -test_steal_space_from_bitmap_to_extent(struct btrfs_block_group_cache *cache, +test_steal_space_from_bitmap_to_extent(struct btrfs_block_group *cache,  				       u32 sectorsize)  {  	int ret; @@ -829,7 +828,7 @@ test_steal_space_from_bitmap_to_extent(struct btrfs_block_group_cache *cache,  int btrfs_test_free_space_cache(u32 sectorsize, u32 nodesize)  {  	struct btrfs_fs_info *fs_info; -	struct btrfs_block_group_cache *cache; +	struct btrfs_block_group *cache;  	struct btrfs_root *root = NULL;  	int ret = -ENOMEM; diff --git a/fs/btrfs/tests/free-space-tree-tests.c b/fs/btrfs/tests/free-space-tree-tests.c index bc92df977630..914eea5ba6a7 100644 --- a/fs/btrfs/tests/free-space-tree-tests.c +++ b/fs/btrfs/tests/free-space-tree-tests.c @@ -18,7 +18,7 @@ struct free_space_extent {  static int __check_free_space_extents(struct btrfs_trans_handle *trans,  				      struct btrfs_fs_info *fs_info, -				      struct btrfs_block_group_cache *cache, +				      struct btrfs_block_group *cache,  				      struct btrfs_path *path,  				      const struct free_space_extent * const extents,  				      unsigned int num_extents) @@ -48,7 +48,7 @@ static int __check_free_space_extents(struct btrfs_trans_handle *trans,  	if (flags & BTRFS_FREE_SPACE_USING_BITMAPS) {  		if (path->slots[0] != 0)  			goto invalid; -		end = cache->key.objectid + cache->key.offset; +		end = cache->start + cache->length;  		i = 0;  		while (++path->slots[0] < btrfs_header_nritems(path->nodes[0])) {  			btrfs_item_key_to_cpu(path->nodes[0], &key, path->slots[0]); @@ -107,7 +107,7 @@ invalid:  static int check_free_space_extents(struct btrfs_trans_handle *trans,  				    struct btrfs_fs_info *fs_info, -				    struct btrfs_block_group_cache *cache, +				    struct btrfs_block_group *cache,  				    struct btrfs_path *path,  				    const struct free_space_extent * const extents,  				    unsigned int num_extents) @@ -150,12 +150,12 @@ static int check_free_space_extents(struct btrfs_trans_handle *trans,  static int test_empty_block_group(struct btrfs_trans_handle *trans,  				  struct btrfs_fs_info *fs_info, -				  struct btrfs_block_group_cache *cache, +				  struct btrfs_block_group *cache,  				  struct btrfs_path *path,  				  u32 alignment)  {  	const struct free_space_extent extents[] = { -		{cache->key.objectid, cache->key.offset}, +		{cache->start, cache->length},  	};  	return check_free_space_extents(trans, fs_info, cache, path, @@ -164,7 +164,7 @@ static int test_empty_block_group(struct btrfs_trans_handle *trans,  static int test_remove_all(struct btrfs_trans_handle *trans,  			   struct btrfs_fs_info *fs_info, -			   struct btrfs_block_group_cache *cache, +			   struct btrfs_block_group *cache,  			   struct btrfs_path *path,  			   u32 alignment)  { @@ -172,8 +172,8 @@ static int test_remove_all(struct btrfs_trans_handle *trans,  	int ret;  	ret = __remove_from_free_space_tree(trans, cache, path, -					    cache->key.objectid, -					    cache->key.offset); +					    cache->start, +					    cache->length);  	if (ret) {  		test_err("could not remove free space");  		return ret; @@ -185,18 +185,17 @@ static int test_remove_all(struct btrfs_trans_handle *trans,  static int test_remove_beginning(struct btrfs_trans_handle *trans,  				 struct btrfs_fs_info *fs_info, -				 struct btrfs_block_group_cache *cache, +				 struct btrfs_block_group *cache,  				 struct btrfs_path *path,  				 u32 alignment)  {  	const struct free_space_extent extents[] = { -		{cache->key.objectid + alignment, -			cache->key.offset - alignment}, +		{cache->start + alignment, cache->length - alignment},  	};  	int ret;  	ret = __remove_from_free_space_tree(trans, cache, path, -					    cache->key.objectid, alignment); +					    cache->start, alignment);  	if (ret) {  		test_err("could not remove free space");  		return ret; @@ -209,19 +208,18 @@ static int test_remove_beginning(struct btrfs_trans_handle *trans,  static int test_remove_end(struct btrfs_trans_handle *trans,  			   struct btrfs_fs_info *fs_info, -			   struct btrfs_block_group_cache *cache, +			   struct btrfs_block_group *cache,  			   struct btrfs_path *path,  			   u32 alignment)  {  	const struct free_space_extent extents[] = { -		{cache->key.objectid, cache->key.offset - alignment}, +		{cache->start, cache->length - alignment},  	};  	int ret;  	ret = __remove_from_free_space_tree(trans, cache, path, -					    cache->key.objectid + -					    cache->key.offset - alignment, -					    alignment); +				    cache->start + cache->length - alignment, +				    alignment);  	if (ret) {  		test_err("could not remove free space");  		return ret; @@ -233,19 +231,18 @@ static int test_remove_end(struct btrfs_trans_handle *trans,  static int test_remove_middle(struct btrfs_trans_handle *trans,  			      struct btrfs_fs_info *fs_info, -			      struct btrfs_block_group_cache *cache, +			      struct btrfs_block_group *cache,  			      struct btrfs_path *path,  			      u32 alignment)  {  	const struct free_space_extent extents[] = { -		{cache->key.objectid, alignment}, -		{cache->key.objectid + 2 * alignment, -			cache->key.offset - 2 * alignment}, +		{cache->start, alignment}, +		{cache->start + 2 * alignment, cache->length - 2 * alignment},  	};  	int ret;  	ret = __remove_from_free_space_tree(trans, cache, path, -					    cache->key.objectid + alignment, +					    cache->start + alignment,  					    alignment);  	if (ret) {  		test_err("could not remove free space"); @@ -258,24 +255,23 @@ static int test_remove_middle(struct btrfs_trans_handle *trans,  static int test_merge_left(struct btrfs_trans_handle *trans,  			   struct btrfs_fs_info *fs_info, -			   struct btrfs_block_group_cache *cache, +			   struct btrfs_block_group *cache,  			   struct btrfs_path *path,  			   u32 alignment)  {  	const struct free_space_extent extents[] = { -		{cache->key.objectid, 2 * alignment}, +		{cache->start, 2 * alignment},  	};  	int ret;  	ret = __remove_from_free_space_tree(trans, cache, path, -					    cache->key.objectid, -					    cache->key.offset); +					    cache->start, cache->length);  	if (ret) {  		test_err("could not remove free space");  		return ret;  	} -	ret = __add_to_free_space_tree(trans, cache, path, cache->key.objectid, +	ret = __add_to_free_space_tree(trans, cache, path, cache->start,  				       alignment);  	if (ret) {  		test_err("could not add free space"); @@ -283,7 +279,7 @@ static int test_merge_left(struct btrfs_trans_handle *trans,  	}  	ret = __add_to_free_space_tree(trans, cache, path, -				       cache->key.objectid + alignment, +				       cache->start + alignment,  				       alignment);  	if (ret) {  		test_err("could not add free space"); @@ -296,25 +292,24 @@ static int test_merge_left(struct btrfs_trans_handle *trans,  static int test_merge_right(struct btrfs_trans_handle *trans,  			   struct btrfs_fs_info *fs_info, -			   struct btrfs_block_group_cache *cache, +			   struct btrfs_block_group *cache,  			   struct btrfs_path *path,  			   u32 alignment)  {  	const struct free_space_extent extents[] = { -		{cache->key.objectid + alignment, 2 * alignment}, +		{cache->start + alignment, 2 * alignment},  	};  	int ret;  	ret = __remove_from_free_space_tree(trans, cache, path, -					    cache->key.objectid, -					    cache->key.offset); +					    cache->start, cache->length);  	if (ret) {  		test_err("could not remove free space");  		return ret;  	}  	ret = __add_to_free_space_tree(trans, cache, path, -				       cache->key.objectid + 2 * alignment, +				       cache->start + 2 * alignment,  				       alignment);  	if (ret) {  		test_err("could not add free space"); @@ -322,7 +317,7 @@ static int test_merge_right(struct btrfs_trans_handle *trans,  	}  	ret = __add_to_free_space_tree(trans, cache, path, -				       cache->key.objectid + alignment, +				       cache->start + alignment,  				       alignment);  	if (ret) {  		test_err("could not add free space"); @@ -335,24 +330,23 @@ static int test_merge_right(struct btrfs_trans_handle *trans,  static int test_merge_both(struct btrfs_trans_handle *trans,  			   struct btrfs_fs_info *fs_info, -			   struct btrfs_block_group_cache *cache, +			   struct btrfs_block_group *cache,  			   struct btrfs_path *path,  			   u32 alignment)  {  	const struct free_space_extent extents[] = { -		{cache->key.objectid, 3 * alignment}, +		{cache->start, 3 * alignment},  	};  	int ret;  	ret = __remove_from_free_space_tree(trans, cache, path, -					    cache->key.objectid, -					    cache->key.offset); +					    cache->start, cache->length);  	if (ret) {  		test_err("could not remove free space");  		return ret;  	} -	ret = __add_to_free_space_tree(trans, cache, path, cache->key.objectid, +	ret = __add_to_free_space_tree(trans, cache, path, cache->start,  				       alignment);  	if (ret) {  		test_err("could not add free space"); @@ -360,16 +354,14 @@ static int test_merge_both(struct btrfs_trans_handle *trans,  	}  	ret = __add_to_free_space_tree(trans, cache, path, -				       cache->key.objectid + 2 * alignment, -				       alignment); +				       cache->start + 2 * alignment, alignment);  	if (ret) {  		test_err("could not add free space");  		return ret;  	}  	ret = __add_to_free_space_tree(trans, cache, path, -				       cache->key.objectid + alignment, -				       alignment); +				       cache->start + alignment, alignment);  	if (ret) {  		test_err("could not add free space");  		return ret; @@ -381,26 +373,25 @@ static int test_merge_both(struct btrfs_trans_handle *trans,  static int test_merge_none(struct btrfs_trans_handle *trans,  			   struct btrfs_fs_info *fs_info, -			   struct btrfs_block_group_cache *cache, +			   struct btrfs_block_group *cache,  			   struct btrfs_path *path,  			   u32 alignment)  {  	const struct free_space_extent extents[] = { -		{cache->key.objectid, alignment}, -		{cache->key.objectid + 2 * alignment, alignment}, -		{cache->key.objectid + 4 * alignment, alignment}, +		{cache->start, alignment}, +		{cache->start + 2 * alignment, alignment}, +		{cache->start + 4 * alignment, alignment},  	};  	int ret;  	ret = __remove_from_free_space_tree(trans, cache, path, -					    cache->key.objectid, -					    cache->key.offset); +					    cache->start, cache->length);  	if (ret) {  		test_err("could not remove free space");  		return ret;  	} -	ret = __add_to_free_space_tree(trans, cache, path, cache->key.objectid, +	ret = __add_to_free_space_tree(trans, cache, path, cache->start,  				       alignment);  	if (ret) {  		test_err("could not add free space"); @@ -408,16 +399,14 @@ static int test_merge_none(struct btrfs_trans_handle *trans,  	}  	ret = __add_to_free_space_tree(trans, cache, path, -				       cache->key.objectid + 4 * alignment, -				       alignment); +				       cache->start + 4 * alignment, alignment);  	if (ret) {  		test_err("could not add free space");  		return ret;  	}  	ret = __add_to_free_space_tree(trans, cache, path, -				       cache->key.objectid + 2 * alignment, -				       alignment); +				       cache->start + 2 * alignment, alignment);  	if (ret) {  		test_err("could not add free space");  		return ret; @@ -429,7 +418,7 @@ static int test_merge_none(struct btrfs_trans_handle *trans,  typedef int (*test_func_t)(struct btrfs_trans_handle *,  			   struct btrfs_fs_info *, -			   struct btrfs_block_group_cache *, +			   struct btrfs_block_group *,  			   struct btrfs_path *,  			   u32 alignment); @@ -438,7 +427,7 @@ static int run_test(test_func_t test_func, int bitmaps, u32 sectorsize,  {  	struct btrfs_fs_info *fs_info;  	struct btrfs_root *root = NULL; -	struct btrfs_block_group_cache *cache = NULL; +	struct btrfs_block_group *cache = NULL;  	struct btrfs_trans_handle trans;  	struct btrfs_path *path = NULL;  	int ret; @@ -463,9 +452,9 @@ static int run_test(test_func_t test_func, int bitmaps, u32 sectorsize,  	root->fs_info->tree_root = root;  	root->node = alloc_test_extent_buffer(root->fs_info, nodesize); -	if (!root->node) { +	if (IS_ERR(root->node)) {  		test_std_err(TEST_ALLOC_EXTENT_BUFFER); -		ret = -ENOMEM; +		ret = PTR_ERR(root->node);  		goto out;  	}  	btrfs_set_header_level(root->node, 0); diff --git a/fs/btrfs/tests/qgroup-tests.c b/fs/btrfs/tests/qgroup-tests.c index 09aaca1efd62..ac035a6fa003 100644 --- a/fs/btrfs/tests/qgroup-tests.c +++ b/fs/btrfs/tests/qgroup-tests.c @@ -484,9 +484,9 @@ int btrfs_test_qgroups(u32 sectorsize, u32 nodesize)  	 * *cough*backref walking code*cough*  	 */  	root->node = alloc_test_extent_buffer(root->fs_info, nodesize); -	if (!root->node) { +	if (IS_ERR(root->node)) {  		test_err("couldn't allocate dummy buffer"); -		ret = -ENOMEM; +		ret = PTR_ERR(root->node);  		goto out;  	}  	btrfs_set_header_level(root->node, 0);  |