btrfs: tests: add separate stub for find_lock_delalloc_range

The helper find_lock_delalloc_range is now conditionally built static,
dpending on whether the self-tests are enabled or not. There's a macro
that is supposed to hide the export, used only once. To discourage
further use, drop it an add a public wrapper for the helper needed by
tests.

Reviewed-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
David Sterba 2018-08-17 17:28:06 +02:00
parent ecf160b424
commit 9c36396c2a
4 changed files with 18 additions and 13 deletions

View File

@ -41,12 +41,6 @@ extern struct kmem_cache *btrfs_path_cachep;
extern struct kmem_cache *btrfs_free_space_cachep; extern struct kmem_cache *btrfs_free_space_cachep;
struct btrfs_ordered_sum; struct btrfs_ordered_sum;
#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
#define STATIC noinline
#else
#define STATIC static noinline
#endif
#define BTRFS_MAGIC 0x4D5F53665248425FULL /* ascii _BHRfS_M, no null */ #define BTRFS_MAGIC 0x4D5F53665248425FULL /* ascii _BHRfS_M, no null */
#define BTRFS_MAX_MIRRORS 3 #define BTRFS_MAX_MIRRORS 3

View File

@ -1563,7 +1563,7 @@ static noinline int lock_delalloc_pages(struct inode *inode,
* *
* 1 is returned if we find something, 0 if nothing was in the tree * 1 is returned if we find something, 0 if nothing was in the tree
*/ */
STATIC u64 find_lock_delalloc_range(struct inode *inode, static noinline_for_stack u64 find_lock_delalloc_range(struct inode *inode,
struct extent_io_tree *tree, struct extent_io_tree *tree,
struct page *locked_page, u64 *start, struct page *locked_page, u64 *start,
u64 *end, u64 max_bytes) u64 *end, u64 max_bytes)
@ -1643,6 +1643,17 @@ out_failed:
return found; 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, u64 max_bytes)
{
return find_lock_delalloc_range(inode, tree, locked_page, start, end,
max_bytes);
}
#endif
static int __process_pages_contig(struct address_space *mapping, static int __process_pages_contig(struct address_space *mapping,
struct page *locked_page, struct page *locked_page,
pgoff_t start_index, pgoff_t end_index, pgoff_t start_index, pgoff_t end_index,

View File

@ -546,7 +546,7 @@ int free_io_failure(struct extent_io_tree *failure_tree,
struct extent_io_tree *io_tree, struct extent_io_tree *io_tree,
struct io_failure_record *rec); struct io_failure_record *rec);
#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS #ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
noinline u64 find_lock_delalloc_range(struct inode *inode, u64 btrfs_find_lock_delalloc_range(struct inode *inode,
struct extent_io_tree *tree, struct extent_io_tree *tree,
struct page *locked_page, u64 *start, struct page *locked_page, u64 *start,
u64 *end, u64 max_bytes); u64 *end, u64 max_bytes);

View File

@ -106,7 +106,7 @@ static int test_find_delalloc(u32 sectorsize)
set_extent_delalloc(&tmp, 0, sectorsize - 1, 0, NULL); set_extent_delalloc(&tmp, 0, sectorsize - 1, 0, NULL);
start = 0; start = 0;
end = 0; end = 0;
found = find_lock_delalloc_range(inode, &tmp, locked_page, &start, found = btrfs_find_lock_delalloc_range(inode, &tmp, locked_page, &start,
&end, max_bytes); &end, max_bytes);
if (!found) { if (!found) {
test_err("should have found at least one delalloc"); test_err("should have found at least one delalloc");
@ -137,7 +137,7 @@ static int test_find_delalloc(u32 sectorsize)
set_extent_delalloc(&tmp, sectorsize, max_bytes - 1, 0, NULL); set_extent_delalloc(&tmp, sectorsize, max_bytes - 1, 0, NULL);
start = test_start; start = test_start;
end = 0; end = 0;
found = find_lock_delalloc_range(inode, &tmp, locked_page, &start, found = btrfs_find_lock_delalloc_range(inode, &tmp, locked_page, &start,
&end, max_bytes); &end, max_bytes);
if (!found) { if (!found) {
test_err("couldn't find delalloc in our range"); test_err("couldn't find delalloc in our range");
@ -171,7 +171,7 @@ static int test_find_delalloc(u32 sectorsize)
} }
start = test_start; start = test_start;
end = 0; end = 0;
found = find_lock_delalloc_range(inode, &tmp, locked_page, &start, found = btrfs_find_lock_delalloc_range(inode, &tmp, locked_page, &start,
&end, max_bytes); &end, max_bytes);
if (found) { if (found) {
test_err("found range when we shouldn't have"); test_err("found range when we shouldn't have");
@ -192,7 +192,7 @@ static int test_find_delalloc(u32 sectorsize)
set_extent_delalloc(&tmp, max_bytes, total_dirty - 1, 0, NULL); set_extent_delalloc(&tmp, max_bytes, total_dirty - 1, 0, NULL);
start = test_start; start = test_start;
end = 0; end = 0;
found = find_lock_delalloc_range(inode, &tmp, locked_page, &start, found = btrfs_find_lock_delalloc_range(inode, &tmp, locked_page, &start,
&end, max_bytes); &end, max_bytes);
if (!found) { if (!found) {
test_err("didn't find our range"); test_err("didn't find our range");
@ -233,7 +233,7 @@ static int test_find_delalloc(u32 sectorsize)
* this changes at any point in the future we will need to fix this * this changes at any point in the future we will need to fix this
* tests expected behavior. * tests expected behavior.
*/ */
found = find_lock_delalloc_range(inode, &tmp, locked_page, &start, found = btrfs_find_lock_delalloc_range(inode, &tmp, locked_page, &start,
&end, max_bytes); &end, max_bytes);
if (!found) { if (!found) {
test_err("didn't find our range"); test_err("didn't find our range");