Skip to content

Commit

Permalink
btrfs: use EXPORT_FOR_TESTS for conditionally exported functions
Browse files Browse the repository at this point in the history
Several functions in BTRFS are only used inside the source file they are
declared if CONFIG_BTRFS_FS_RUN_SANITY_TESTS is not defined. However if
CONFIG_BTRFS_FS_RUN_SANITY_TESTS is defined these functions are shared
with the unit tests code.

Before the introduction of the EXPORT_FOR_TESTS macro, these functions
could not be declared as static and the compiler had a harder task when
optimizing and inlining them.

As we have EXPORT_FOR_TESTS now, use it where appropriate to support the
compiler.

Reviewed-by: Nikolay Borisov <nborisov@suse.com>
Signed-off-by: Johannes Thumshirn <jthumshirn@suse.de>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
  • Loading branch information
Johannes Thumshirn authored and kdave committed Dec 17, 2018
1 parent f8f591d commit ce9f967
Show file tree
Hide file tree
Showing 4 changed files with 20 additions and 25 deletions.
13 changes: 2 additions & 11 deletions fs/btrfs/extent_io.c
Original file line number Diff line number Diff line change
Expand Up @@ -1556,7 +1556,8 @@ static noinline int lock_delalloc_pages(struct inode *inode,
*
* 1 is returned if we find something, 0 if nothing was in the tree
*/
static noinline_for_stack u64 find_lock_delalloc_range(struct inode *inode,
EXPORT_FOR_TESTS
noinline_for_stack u64 find_lock_delalloc_range(struct inode *inode,
struct extent_io_tree *tree,
struct page *locked_page, u64 *start,
u64 *end)
Expand Down Expand Up @@ -1637,16 +1638,6 @@ static noinline_for_stack u64 find_lock_delalloc_range(struct inode *inode,
return found;
}

#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
u64 btrfs_find_lock_delalloc_range(struct inode *inode,
struct extent_io_tree *tree,
struct page *locked_page, u64 *start,
u64 *end)
{
return find_lock_delalloc_range(inode, tree, locked_page, start, end);
}
#endif

static int __process_pages_contig(struct address_space *mapping,
struct page *locked_page,
pgoff_t start_index, pgoff_t end_index,
Expand Down
7 changes: 3 additions & 4 deletions fs/btrfs/extent_io.h
Original file line number Diff line number Diff line change
Expand Up @@ -522,10 +522,9 @@ int free_io_failure(struct extent_io_tree *failure_tree,
struct extent_io_tree *io_tree,
struct io_failure_record *rec);
#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
u64 btrfs_find_lock_delalloc_range(struct inode *inode,
struct extent_io_tree *tree,
struct page *locked_page, u64 *start,
u64 *end);
u64 find_lock_delalloc_range(struct inode *inode, struct extent_io_tree *tree,
struct page *locked_page, u64 *start,
u64 *end);
#endif
struct extent_buffer *alloc_test_extent_buffer(struct btrfs_fs_info *fs_info,
u64 start);
Expand Down
15 changes: 10 additions & 5 deletions fs/btrfs/free-space-tree.c
Original file line number Diff line number Diff line change
Expand Up @@ -74,11 +74,11 @@ static int add_new_free_space_info(struct btrfs_trans_handle *trans,
return ret;
}

struct btrfs_free_space_info *
search_free_space_info(struct btrfs_trans_handle *trans,
struct btrfs_fs_info *fs_info,
struct btrfs_block_group_cache *block_group,
struct btrfs_path *path, int cow)
EXPORT_FOR_TESTS
struct btrfs_free_space_info *search_free_space_info(
struct btrfs_trans_handle *trans, struct btrfs_fs_info *fs_info,
struct btrfs_block_group_cache *block_group,
struct btrfs_path *path, int cow)
{
struct btrfs_root *root = fs_info->free_space_root;
struct btrfs_key key;
Expand Down Expand Up @@ -176,6 +176,7 @@ static void le_bitmap_set(unsigned long *map, unsigned int start, int len)
}
}

EXPORT_FOR_TESTS
int convert_free_space_to_bitmaps(struct btrfs_trans_handle *trans,
struct btrfs_block_group_cache *block_group,
struct btrfs_path *path)
Expand Down Expand Up @@ -315,6 +316,7 @@ int convert_free_space_to_bitmaps(struct btrfs_trans_handle *trans,
return ret;
}

EXPORT_FOR_TESTS
int convert_free_space_to_extents(struct btrfs_trans_handle *trans,
struct btrfs_block_group_cache *block_group,
struct btrfs_path *path)
Expand Down Expand Up @@ -487,6 +489,7 @@ static int update_free_space_extent_count(struct btrfs_trans_handle *trans,
return ret;
}

EXPORT_FOR_TESTS
int free_space_test_bit(struct btrfs_block_group_cache *block_group,
struct btrfs_path *path, u64 offset)
{
Expand Down Expand Up @@ -775,6 +778,7 @@ static int remove_free_space_extent(struct btrfs_trans_handle *trans,
return ret;
}

EXPORT_FOR_TESTS
int __remove_from_free_space_tree(struct btrfs_trans_handle *trans,
struct btrfs_block_group_cache *block_group,
struct btrfs_path *path, u64 start, u64 size)
Expand Down Expand Up @@ -968,6 +972,7 @@ static int add_free_space_extent(struct btrfs_trans_handle *trans,
return ret;
}

EXPORT_FOR_TESTS
int __add_to_free_space_tree(struct btrfs_trans_handle *trans,
struct btrfs_block_group_cache *block_group,
struct btrfs_path *path, u64 start, u64 size)
Expand Down
10 changes: 5 additions & 5 deletions fs/btrfs/tests/extent-io-tests.c
Original file line number Diff line number Diff line change
Expand Up @@ -107,7 +107,7 @@ static int test_find_delalloc(u32 sectorsize)
set_extent_delalloc(&tmp, 0, sectorsize - 1, 0, NULL);
start = 0;
end = 0;
found = btrfs_find_lock_delalloc_range(inode, &tmp, locked_page, &start,
found = find_lock_delalloc_range(inode, &tmp, locked_page, &start,
&end);
if (!found) {
test_err("should have found at least one delalloc");
Expand Down Expand Up @@ -138,7 +138,7 @@ static int test_find_delalloc(u32 sectorsize)
set_extent_delalloc(&tmp, sectorsize, max_bytes - 1, 0, NULL);
start = test_start;
end = 0;
found = btrfs_find_lock_delalloc_range(inode, &tmp, locked_page, &start,
found = find_lock_delalloc_range(inode, &tmp, locked_page, &start,
&end);
if (!found) {
test_err("couldn't find delalloc in our range");
Expand Down Expand Up @@ -172,7 +172,7 @@ static int test_find_delalloc(u32 sectorsize)
}
start = test_start;
end = 0;
found = btrfs_find_lock_delalloc_range(inode, &tmp, locked_page, &start,
found = find_lock_delalloc_range(inode, &tmp, locked_page, &start,
&end);
if (found) {
test_err("found range when we shouldn't have");
Expand All @@ -193,7 +193,7 @@ static int test_find_delalloc(u32 sectorsize)
set_extent_delalloc(&tmp, max_bytes, total_dirty - 1, 0, NULL);
start = test_start;
end = 0;
found = btrfs_find_lock_delalloc_range(inode, &tmp, locked_page, &start,
found = find_lock_delalloc_range(inode, &tmp, locked_page, &start,
&end);
if (!found) {
test_err("didn't find our range");
Expand Down Expand Up @@ -234,7 +234,7 @@ static int test_find_delalloc(u32 sectorsize)
* this changes at any point in the future we will need to fix this
* tests expected behavior.
*/
found = btrfs_find_lock_delalloc_range(inode, &tmp, locked_page, &start,
found = find_lock_delalloc_range(inode, &tmp, locked_page, &start,
&end);
if (!found) {
test_err("didn't find our range");
Expand Down

0 comments on commit ce9f967

Please sign in to comment.