|
@@ -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;
|
|
|
}
|
|
|
|