mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	btrfs: move checks for DUMMY_ROOT into a helper
Signed-off-by: David Sterba <dsterba@suse.cz>
This commit is contained in:
		
							parent
							
								
									7ec20afbcb
								
							
						
					
					
						commit
						fccb84c94a
					
				
					 5 changed files with 23 additions and 21 deletions
				
			
		| 
						 | 
					@ -1506,10 +1506,9 @@ 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)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
 | 
						if (btrfs_test_is_dummy_root(root))
 | 
				
			||||||
	if (unlikely(test_bit(BTRFS_ROOT_DUMMY_ROOT, &root->state)))
 | 
					 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
#endif
 | 
					
 | 
				
			||||||
	/* ensure we can see the force_cow */
 | 
						/* ensure we can see the force_cow */
 | 
				
			||||||
	smp_rmb();
 | 
						smp_rmb();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4131,4 +4131,13 @@ int btrfs_verify_qgroup_counts(struct btrfs_fs_info *fs_info, u64 qgroupid,
 | 
				
			||||||
			       u64 rfer, u64 excl);
 | 
								       u64 rfer, u64 excl);
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static inline int btrfs_test_is_dummy_root(struct btrfs_root *root)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
 | 
				
			||||||
 | 
						if (unlikely(test_bit(BTRFS_ROOT_DUMMY_ROOT, &root->state)))
 | 
				
			||||||
 | 
							return 1;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1130,11 +1130,9 @@ struct extent_buffer *btrfs_find_tree_block(struct btrfs_root *root,
 | 
				
			||||||
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, u32 blocksize)
 | 
											 u64 bytenr, u32 blocksize)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
 | 
						if (btrfs_test_is_dummy_root(root))
 | 
				
			||||||
	if (unlikely(test_bit(BTRFS_ROOT_DUMMY_ROOT, &root->state)))
 | 
					 | 
				
			||||||
		return alloc_test_extent_buffer(root->fs_info, bytenr,
 | 
							return alloc_test_extent_buffer(root->fs_info, bytenr,
 | 
				
			||||||
						blocksize);
 | 
											blocksize);
 | 
				
			||||||
#endif
 | 
					 | 
				
			||||||
	return alloc_extent_buffer(root->fs_info, bytenr, blocksize);
 | 
						return alloc_extent_buffer(root->fs_info, bytenr, blocksize);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -3073,10 +3073,10 @@ static int __btrfs_mod_ref(struct btrfs_trans_handle *trans,
 | 
				
			||||||
	int (*process_func)(struct btrfs_trans_handle *, struct btrfs_root *,
 | 
						int (*process_func)(struct btrfs_trans_handle *, struct btrfs_root *,
 | 
				
			||||||
			    u64, u64, u64, u64, u64, u64, int);
 | 
								    u64, u64, u64, u64, u64, u64, int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
 | 
					
 | 
				
			||||||
	if (unlikely(test_bit(BTRFS_ROOT_DUMMY_ROOT, &root->state)))
 | 
						if (btrfs_test_is_dummy_root(root))
 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
#endif
 | 
					
 | 
				
			||||||
	ref_root = btrfs_header_owner(buf);
 | 
						ref_root = btrfs_header_owner(buf);
 | 
				
			||||||
	nritems = btrfs_header_nritems(buf);
 | 
						nritems = btrfs_header_nritems(buf);
 | 
				
			||||||
	level = btrfs_header_level(buf);
 | 
						level = btrfs_header_level(buf);
 | 
				
			||||||
| 
						 | 
					@ -6264,10 +6264,9 @@ 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;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
 | 
						if (btrfs_test_is_dummy_root(root))
 | 
				
			||||||
	if (unlikely(test_bit(BTRFS_ROOT_DUMMY_ROOT, &root->state)))
 | 
					 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
#endif
 | 
					
 | 
				
			||||||
	add_pinned_bytes(root->fs_info, num_bytes, owner, root_objectid);
 | 
						add_pinned_bytes(root->fs_info, num_bytes, owner, root_objectid);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	/*
 | 
						/*
 | 
				
			||||||
| 
						 | 
					@ -7336,15 +7335,14 @@ struct extent_buffer *btrfs_alloc_free_block(struct btrfs_trans_handle *trans,
 | 
				
			||||||
	bool skinny_metadata = btrfs_fs_incompat(root->fs_info,
 | 
						bool skinny_metadata = btrfs_fs_incompat(root->fs_info,
 | 
				
			||||||
						 SKINNY_METADATA);
 | 
											 SKINNY_METADATA);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
 | 
						if (btrfs_test_is_dummy_root(root)) {
 | 
				
			||||||
	if (unlikely(test_bit(BTRFS_ROOT_DUMMY_ROOT, &root->state))) {
 | 
					 | 
				
			||||||
		buf = btrfs_init_new_buffer(trans, root, root->alloc_bytenr,
 | 
							buf = btrfs_init_new_buffer(trans, root, root->alloc_bytenr,
 | 
				
			||||||
					    blocksize, level);
 | 
										    blocksize, level);
 | 
				
			||||||
		if (!IS_ERR(buf))
 | 
							if (!IS_ERR(buf))
 | 
				
			||||||
			root->alloc_bytenr += blocksize;
 | 
								root->alloc_bytenr += blocksize;
 | 
				
			||||||
		return buf;
 | 
							return buf;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
#endif
 | 
					
 | 
				
			||||||
	block_rsv = use_block_rsv(trans, root, blocksize);
 | 
						block_rsv = use_block_rsv(trans, root, blocksize);
 | 
				
			||||||
	if (IS_ERR(block_rsv))
 | 
						if (IS_ERR(block_rsv))
 | 
				
			||||||
		return ERR_CAST(block_rsv);
 | 
							return ERR_CAST(block_rsv);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -539,10 +539,9 @@ 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;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
 | 
						if (btrfs_test_is_dummy_root(quota_root))
 | 
				
			||||||
	if (unlikely(test_bit(BTRFS_ROOT_DUMMY_ROOT, "a_root->state)))
 | 
					 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
#endif
 | 
					
 | 
				
			||||||
	path = btrfs_alloc_path();
 | 
						path = btrfs_alloc_path();
 | 
				
			||||||
	if (!path)
 | 
						if (!path)
 | 
				
			||||||
		return -ENOMEM;
 | 
							return -ENOMEM;
 | 
				
			||||||
| 
						 | 
					@ -698,10 +697,9 @@ static int update_qgroup_info_item(struct btrfs_trans_handle *trans,
 | 
				
			||||||
	int ret;
 | 
						int ret;
 | 
				
			||||||
	int slot;
 | 
						int slot;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#ifdef CONFIG_BTRFS_FS_RUN_SANITY_TESTS
 | 
						if (btrfs_test_is_dummy_root(root))
 | 
				
			||||||
	if (unlikely(test_bit(BTRFS_ROOT_DUMMY_ROOT, &root->state)))
 | 
					 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
#endif
 | 
					
 | 
				
			||||||
	key.objectid = 0;
 | 
						key.objectid = 0;
 | 
				
			||||||
	key.type = BTRFS_QGROUP_INFO_KEY;
 | 
						key.type = BTRFS_QGROUP_INFO_KEY;
 | 
				
			||||||
	key.offset = qgroup->qgroupid;
 | 
						key.offset = qgroup->qgroupid;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue