btrfs: tests, use BTRFS_FS_STATE_DUMMY_FS_INFO instead of dummy root
Now that we have a dummy fs_info associated with each test that uses a root, we don't need the DUMMY_ROOT bit anymore. This lets us make choices without needing an actual root like in e.g. btrfs_find_create_tree_block. Signed-off-by: Jeff Mahoney <jeffm@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
parent
7c0260ee09
commit
f5ee5c9ac5
|
@ -361,7 +361,7 @@ static int __resolve_indirect_ref(struct btrfs_fs_info *fs_info,
|
||||||
goto out;
|
goto out;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (btrfs_test_is_dummy_root(root)) {
|
if (btrfs_is_testing(fs_info)) {
|
||||||
srcu_read_unlock(&fs_info->subvol_srcu, index);
|
srcu_read_unlock(&fs_info->subvol_srcu, index);
|
||||||
ret = -ENOENT;
|
ret = -ENOENT;
|
||||||
goto out;
|
goto out;
|
||||||
|
|
|
@ -1505,7 +1505,7 @@ static inline int should_cow_block(struct btrfs_trans_handle *trans,
|
||||||
struct btrfs_root *root,
|
struct btrfs_root *root,
|
||||||
struct extent_buffer *buf)
|
struct extent_buffer *buf)
|
||||||
{
|
{
|
||||||
if (btrfs_test_is_dummy_root(root))
|
if (btrfs_is_testing(root->fs_info))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
/* ensure we can see the force_cow */
|
/* ensure we can see the force_cow */
|
||||||
|
|
|
@ -1115,12 +1115,11 @@ struct btrfs_subvolume_writers {
|
||||||
#define BTRFS_ROOT_REF_COWS 1
|
#define BTRFS_ROOT_REF_COWS 1
|
||||||
#define BTRFS_ROOT_TRACK_DIRTY 2
|
#define BTRFS_ROOT_TRACK_DIRTY 2
|
||||||
#define BTRFS_ROOT_IN_RADIX 3
|
#define BTRFS_ROOT_IN_RADIX 3
|
||||||
#define BTRFS_ROOT_DUMMY_ROOT 4
|
#define BTRFS_ROOT_ORPHAN_ITEM_INSERTED 4
|
||||||
#define BTRFS_ROOT_ORPHAN_ITEM_INSERTED 5
|
#define BTRFS_ROOT_DEFRAG_RUNNING 5
|
||||||
#define BTRFS_ROOT_DEFRAG_RUNNING 6
|
#define BTRFS_ROOT_FORCE_COW 6
|
||||||
#define BTRFS_ROOT_FORCE_COW 7
|
#define BTRFS_ROOT_MULTI_LOG_TASKS 7
|
||||||
#define BTRFS_ROOT_MULTI_LOG_TASKS 8
|
#define BTRFS_ROOT_DIRTY 8
|
||||||
#define BTRFS_ROOT_DIRTY 9
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* in ram representation of the tree. extent_root is used for all allocations
|
* in ram representation of the tree. extent_root is used for all allocations
|
||||||
|
@ -3613,13 +3612,13 @@ static inline int btrfs_defrag_cancelled(struct btrfs_fs_info *fs_info)
|
||||||
void btrfs_test_destroy_inode(struct inode *inode);
|
void btrfs_test_destroy_inode(struct inode *inode);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static inline int btrfs_test_is_dummy_root(struct btrfs_root *root)
|
static inline int btrfs_is_testing(struct btrfs_fs_info *fs_info)
|
||||||
{
|
{
|
||||||
#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
|
#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
|
||||||
if (unlikely(test_bit(BTRFS_ROOT_DUMMY_ROOT, &root->state)))
|
if (unlikely(test_bit(BTRFS_FS_STATE_DUMMY_FS_INFO,
|
||||||
|
&fs_info->fs_state)))
|
||||||
return 1;
|
return 1;
|
||||||
#endif
|
#endif
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1146,7 +1146,7 @@ struct extent_buffer *btrfs_find_tree_block(struct btrfs_fs_info *fs_info,
|
||||||
struct extent_buffer *btrfs_find_create_tree_block(struct btrfs_root *root,
|
struct extent_buffer *btrfs_find_create_tree_block(struct btrfs_root *root,
|
||||||
u64 bytenr)
|
u64 bytenr)
|
||||||
{
|
{
|
||||||
if (btrfs_test_is_dummy_root(root))
|
if (btrfs_is_testing(root->fs_info))
|
||||||
return alloc_test_extent_buffer(root->fs_info, bytenr,
|
return alloc_test_extent_buffer(root->fs_info, bytenr,
|
||||||
root->nodesize);
|
root->nodesize);
|
||||||
return alloc_extent_buffer(root->fs_info, bytenr);
|
return alloc_extent_buffer(root->fs_info, bytenr);
|
||||||
|
@ -1330,7 +1330,6 @@ struct btrfs_root *btrfs_alloc_dummy_root(struct btrfs_fs_info *fs_info,
|
||||||
/* We don't use the stripesize in selftest, set it as sectorsize */
|
/* We don't use the stripesize in selftest, set it as sectorsize */
|
||||||
__setup_root(nodesize, sectorsize, sectorsize, root, fs_info,
|
__setup_root(nodesize, sectorsize, sectorsize, root, fs_info,
|
||||||
BTRFS_ROOT_TREE_OBJECTID);
|
BTRFS_ROOT_TREE_OBJECTID);
|
||||||
set_bit(BTRFS_ROOT_DUMMY_ROOT, &root->state);
|
|
||||||
root->alloc_bytenr = 0;
|
root->alloc_bytenr = 0;
|
||||||
|
|
||||||
return root;
|
return root;
|
||||||
|
|
|
@ -3235,7 +3235,7 @@ static int __btrfs_mod_ref(struct btrfs_trans_handle *trans,
|
||||||
u64, u64, u64, u64, u64, u64);
|
u64, u64, u64, u64, u64, u64);
|
||||||
|
|
||||||
|
|
||||||
if (btrfs_test_is_dummy_root(root))
|
if (btrfs_is_testing(root->fs_info))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
ref_root = btrfs_header_owner(buf);
|
ref_root = btrfs_header_owner(buf);
|
||||||
|
@ -6101,7 +6101,7 @@ void btrfs_delalloc_release_metadata(struct inode *inode, u64 num_bytes)
|
||||||
if (dropped > 0)
|
if (dropped > 0)
|
||||||
to_free += btrfs_calc_trans_metadata_size(root, dropped);
|
to_free += btrfs_calc_trans_metadata_size(root, dropped);
|
||||||
|
|
||||||
if (btrfs_test_is_dummy_root(root))
|
if (btrfs_is_testing(root->fs_info))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
trace_btrfs_space_reservation(root->fs_info, "delalloc",
|
trace_btrfs_space_reservation(root->fs_info, "delalloc",
|
||||||
|
@ -7217,7 +7217,7 @@ int btrfs_free_extent(struct btrfs_trans_handle *trans, struct btrfs_root *root,
|
||||||
int ret;
|
int ret;
|
||||||
struct btrfs_fs_info *fs_info = root->fs_info;
|
struct btrfs_fs_info *fs_info = root->fs_info;
|
||||||
|
|
||||||
if (btrfs_test_is_dummy_root(root))
|
if (btrfs_is_testing(fs_info))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
add_pinned_bytes(root->fs_info, num_bytes, owner, root_objectid);
|
add_pinned_bytes(root->fs_info, num_bytes, owner, root_objectid);
|
||||||
|
@ -8356,7 +8356,7 @@ struct extent_buffer *btrfs_alloc_tree_block(struct btrfs_trans_handle *trans,
|
||||||
SKINNY_METADATA);
|
SKINNY_METADATA);
|
||||||
|
|
||||||
#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
|
#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
|
||||||
if (btrfs_test_is_dummy_root(root)) {
|
if (btrfs_is_testing(root->fs_info)) {
|
||||||
buf = btrfs_init_new_buffer(trans, root, root->alloc_bytenr,
|
buf = btrfs_init_new_buffer(trans, root, root->alloc_bytenr,
|
||||||
level);
|
level);
|
||||||
if (!IS_ERR(buf))
|
if (!IS_ERR(buf))
|
||||||
|
|
|
@ -1744,7 +1744,7 @@ static void btrfs_set_bit_hook(struct inode *inode,
|
||||||
}
|
}
|
||||||
|
|
||||||
/* For sanity tests */
|
/* For sanity tests */
|
||||||
if (btrfs_test_is_dummy_root(root))
|
if (btrfs_is_testing(root->fs_info))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
__percpu_counter_add(&root->fs_info->delalloc_bytes, len,
|
__percpu_counter_add(&root->fs_info->delalloc_bytes, len,
|
||||||
|
@ -1803,7 +1803,7 @@ static void btrfs_clear_bit_hook(struct inode *inode,
|
||||||
btrfs_delalloc_release_metadata(inode, len);
|
btrfs_delalloc_release_metadata(inode, len);
|
||||||
|
|
||||||
/* For sanity tests. */
|
/* For sanity tests. */
|
||||||
if (btrfs_test_is_dummy_root(root))
|
if (btrfs_is_testing(root->fs_info))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (root->root_key.objectid != BTRFS_DATA_RELOC_TREE_OBJECTID
|
if (root->root_key.objectid != BTRFS_DATA_RELOC_TREE_OBJECTID
|
||||||
|
|
|
@ -571,7 +571,7 @@ static int add_qgroup_item(struct btrfs_trans_handle *trans,
|
||||||
struct extent_buffer *leaf;
|
struct extent_buffer *leaf;
|
||||||
struct btrfs_key key;
|
struct btrfs_key key;
|
||||||
|
|
||||||
if (btrfs_test_is_dummy_root(quota_root))
|
if (btrfs_is_testing(quota_root->fs_info))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
path = btrfs_alloc_path();
|
path = btrfs_alloc_path();
|
||||||
|
@ -728,7 +728,7 @@ static int update_qgroup_info_item(struct btrfs_trans_handle *trans,
|
||||||
int ret;
|
int ret;
|
||||||
int slot;
|
int slot;
|
||||||
|
|
||||||
if (btrfs_test_is_dummy_root(root))
|
if (btrfs_is_testing(root->fs_info))
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
key.objectid = 0;
|
key.objectid = 0;
|
||||||
|
|
Loading…
Reference in New Issue