btrfs: tests, require fs_info for root
This allows the upcoming patchset to push nodesize and sectorsize into fs_info. Signed-off-by: Jeff Mahoney <jeffm@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:

committed by
David Sterba

parent
8632daae40
commit
7c0260ee09
@@ -230,6 +230,7 @@ static unsigned long vacancy_only = 0;
|
||||
|
||||
static noinline int test_btrfs_get_extent(u32 sectorsize, u32 nodesize)
|
||||
{
|
||||
struct btrfs_fs_info *fs_info = NULL;
|
||||
struct inode *inode = NULL;
|
||||
struct btrfs_root *root = NULL;
|
||||
struct extent_map *em = NULL;
|
||||
@@ -248,19 +249,15 @@ static noinline int test_btrfs_get_extent(u32 sectorsize, u32 nodesize)
|
||||
BTRFS_I(inode)->location.objectid = BTRFS_FIRST_FREE_OBJECTID;
|
||||
BTRFS_I(inode)->location.offset = 0;
|
||||
|
||||
root = btrfs_alloc_dummy_root(sectorsize, nodesize);
|
||||
if (IS_ERR(root)) {
|
||||
test_msg("Couldn't allocate root\n");
|
||||
fs_info = btrfs_alloc_dummy_fs_info();
|
||||
if (!fs_info) {
|
||||
test_msg("Couldn't allocate dummy fs info\n");
|
||||
goto out;
|
||||
}
|
||||
|
||||
/*
|
||||
* We do this since btrfs_get_extent wants to assign em->bdev to
|
||||
* root->fs_info->fs_devices->latest_bdev.
|
||||
*/
|
||||
root->fs_info = btrfs_alloc_dummy_fs_info();
|
||||
if (!root->fs_info) {
|
||||
test_msg("Couldn't allocate dummy fs info\n");
|
||||
root = btrfs_alloc_dummy_root(fs_info, sectorsize, nodesize);
|
||||
if (IS_ERR(root)) {
|
||||
test_msg("Couldn't allocate root\n");
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -835,11 +832,13 @@ out:
|
||||
free_extent_map(em);
|
||||
iput(inode);
|
||||
btrfs_free_dummy_root(root);
|
||||
btrfs_free_dummy_fs_info(fs_info);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int test_hole_first(u32 sectorsize, u32 nodesize)
|
||||
{
|
||||
struct btrfs_fs_info *fs_info = NULL;
|
||||
struct inode *inode = NULL;
|
||||
struct btrfs_root *root = NULL;
|
||||
struct extent_map *em = NULL;
|
||||
@@ -855,15 +854,15 @@ static int test_hole_first(u32 sectorsize, u32 nodesize)
|
||||
BTRFS_I(inode)->location.objectid = BTRFS_FIRST_FREE_OBJECTID;
|
||||
BTRFS_I(inode)->location.offset = 0;
|
||||
|
||||
root = btrfs_alloc_dummy_root(sectorsize, nodesize);
|
||||
if (IS_ERR(root)) {
|
||||
test_msg("Couldn't allocate root\n");
|
||||
fs_info = btrfs_alloc_dummy_fs_info();
|
||||
if (!fs_info) {
|
||||
test_msg("Couldn't allocate dummy fs info\n");
|
||||
goto out;
|
||||
}
|
||||
|
||||
root->fs_info = btrfs_alloc_dummy_fs_info();
|
||||
if (!root->fs_info) {
|
||||
test_msg("Couldn't allocate dummy fs info\n");
|
||||
root = btrfs_alloc_dummy_root(fs_info, sectorsize, nodesize);
|
||||
if (IS_ERR(root)) {
|
||||
test_msg("Couldn't allocate root\n");
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -934,11 +933,13 @@ out:
|
||||
free_extent_map(em);
|
||||
iput(inode);
|
||||
btrfs_free_dummy_root(root);
|
||||
btrfs_free_dummy_fs_info(fs_info);
|
||||
return ret;
|
||||
}
|
||||
|
||||
static int test_extent_accounting(u32 sectorsize, u32 nodesize)
|
||||
{
|
||||
struct btrfs_fs_info *fs_info = NULL;
|
||||
struct inode *inode = NULL;
|
||||
struct btrfs_root *root = NULL;
|
||||
int ret = -ENOMEM;
|
||||
@@ -949,15 +950,15 @@ static int test_extent_accounting(u32 sectorsize, u32 nodesize)
|
||||
return ret;
|
||||
}
|
||||
|
||||
root = btrfs_alloc_dummy_root(sectorsize, nodesize);
|
||||
if (IS_ERR(root)) {
|
||||
test_msg("Couldn't allocate root\n");
|
||||
fs_info = btrfs_alloc_dummy_fs_info();
|
||||
if (!fs_info) {
|
||||
test_msg("Couldn't allocate dummy fs info\n");
|
||||
goto out;
|
||||
}
|
||||
|
||||
root->fs_info = btrfs_alloc_dummy_fs_info();
|
||||
if (!root->fs_info) {
|
||||
test_msg("Couldn't allocate dummy fs info\n");
|
||||
root = btrfs_alloc_dummy_root(fs_info, sectorsize, nodesize);
|
||||
if (IS_ERR(root)) {
|
||||
test_msg("Couldn't allocate root\n");
|
||||
goto out;
|
||||
}
|
||||
|
||||
@@ -1132,6 +1133,7 @@ out:
|
||||
NULL, GFP_KERNEL);
|
||||
iput(inode);
|
||||
btrfs_free_dummy_root(root);
|
||||
btrfs_free_dummy_fs_info(fs_info);
|
||||
return ret;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user