mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 16:48:26 +02:00 
			
		
		
		
	btrfs: move extent-tree helpers into their own header file
Move all the extent tree related prototypes to extent-tree.h out of ctree.h, and then go include it everywhere needed so everything compiles. Signed-off-by: Josef Bacik <josef@toxicpanda.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
		
							parent
							
								
									e2f13b343c
								
							
						
					
					
						commit
						a0231804af
					
				
					 17 changed files with 87 additions and 72 deletions
				
			
		|  | @ -17,6 +17,7 @@ | |||
| #include "tree-mod-log.h" | ||||
| #include "fs.h" | ||||
| #include "accessors.h" | ||||
| #include "extent-tree.h" | ||||
| 
 | ||||
| /* Just arbitrary numbers so we can be sure one of these happened. */ | ||||
| #define BACKREF_FOUND_SHARED     6 | ||||
|  |  | |||
|  | @ -19,6 +19,7 @@ | |||
| #include "zoned.h" | ||||
| #include "fs.h" | ||||
| #include "accessors.h" | ||||
| #include "extent-tree.h" | ||||
| 
 | ||||
| #ifdef CONFIG_BTRFS_DEBUG | ||||
| int btrfs_should_fragment_free_space(struct btrfs_block_group *block_group) | ||||
|  |  | |||
|  | @ -20,6 +20,7 @@ | |||
| #include "tree-checker.h" | ||||
| #include "fs.h" | ||||
| #include "accessors.h" | ||||
| #include "extent-tree.h" | ||||
| 
 | ||||
| static struct kmem_cache *btrfs_path_cachep; | ||||
| 
 | ||||
|  |  | |||
|  | @ -495,78 +495,6 @@ static inline gfp_t btrfs_alloc_write_mask(struct address_space *mapping) | |||
| 	return mapping_gfp_constraint(mapping, ~__GFP_FS); | ||||
| } | ||||
| 
 | ||||
| /* extent-tree.c */ | ||||
| 
 | ||||
| enum btrfs_inline_ref_type { | ||||
| 	BTRFS_REF_TYPE_INVALID, | ||||
| 	BTRFS_REF_TYPE_BLOCK, | ||||
| 	BTRFS_REF_TYPE_DATA, | ||||
| 	BTRFS_REF_TYPE_ANY, | ||||
| }; | ||||
| 
 | ||||
| int btrfs_get_extent_inline_ref_type(const struct extent_buffer *eb, | ||||
| 				     struct btrfs_extent_inline_ref *iref, | ||||
| 				     enum btrfs_inline_ref_type is_data); | ||||
| u64 hash_extent_data_ref(u64 root_objectid, u64 owner, u64 offset); | ||||
| 
 | ||||
| 
 | ||||
| int btrfs_add_excluded_extent(struct btrfs_fs_info *fs_info, | ||||
| 			      u64 start, u64 num_bytes); | ||||
| void btrfs_free_excluded_extents(struct btrfs_block_group *cache); | ||||
| int btrfs_run_delayed_refs(struct btrfs_trans_handle *trans, | ||||
| 			   unsigned long count); | ||||
| void btrfs_cleanup_ref_head_accounting(struct btrfs_fs_info *fs_info, | ||||
| 				  struct btrfs_delayed_ref_root *delayed_refs, | ||||
| 				  struct btrfs_delayed_ref_head *head); | ||||
| int btrfs_lookup_data_extent(struct btrfs_fs_info *fs_info, u64 start, u64 len); | ||||
| int btrfs_lookup_extent_info(struct btrfs_trans_handle *trans, | ||||
| 			     struct btrfs_fs_info *fs_info, u64 bytenr, | ||||
| 			     u64 offset, int metadata, u64 *refs, u64 *flags); | ||||
| int btrfs_pin_extent(struct btrfs_trans_handle *trans, u64 bytenr, u64 num, | ||||
| 		     int reserved); | ||||
| int btrfs_pin_extent_for_log_replay(struct btrfs_trans_handle *trans, | ||||
| 				    u64 bytenr, u64 num_bytes); | ||||
| int btrfs_exclude_logged_extents(struct extent_buffer *eb); | ||||
| int btrfs_cross_ref_exist(struct btrfs_root *root, | ||||
| 			  u64 objectid, u64 offset, u64 bytenr, bool strict, | ||||
| 			  struct btrfs_path *path); | ||||
| struct extent_buffer *btrfs_alloc_tree_block(struct btrfs_trans_handle *trans, | ||||
| 					     struct btrfs_root *root, | ||||
| 					     u64 parent, u64 root_objectid, | ||||
| 					     const struct btrfs_disk_key *key, | ||||
| 					     int level, u64 hint, | ||||
| 					     u64 empty_size, | ||||
| 					     enum btrfs_lock_nesting nest); | ||||
| void btrfs_free_tree_block(struct btrfs_trans_handle *trans, | ||||
| 			   u64 root_id, | ||||
| 			   struct extent_buffer *buf, | ||||
| 			   u64 parent, int last_ref); | ||||
| int btrfs_alloc_reserved_file_extent(struct btrfs_trans_handle *trans, | ||||
| 				     struct btrfs_root *root, u64 owner, | ||||
| 				     u64 offset, u64 ram_bytes, | ||||
| 				     struct btrfs_key *ins); | ||||
| int btrfs_alloc_logged_file_extent(struct btrfs_trans_handle *trans, | ||||
| 				   u64 root_objectid, u64 owner, u64 offset, | ||||
| 				   struct btrfs_key *ins); | ||||
| int btrfs_reserve_extent(struct btrfs_root *root, u64 ram_bytes, u64 num_bytes, | ||||
| 			 u64 min_alloc_size, u64 empty_size, u64 hint_byte, | ||||
| 			 struct btrfs_key *ins, int is_data, int delalloc); | ||||
| int btrfs_inc_ref(struct btrfs_trans_handle *trans, struct btrfs_root *root, | ||||
| 		  struct extent_buffer *buf, int full_backref); | ||||
| int btrfs_dec_ref(struct btrfs_trans_handle *trans, struct btrfs_root *root, | ||||
| 		  struct extent_buffer *buf, int full_backref); | ||||
| int btrfs_set_disk_extent_flags(struct btrfs_trans_handle *trans, | ||||
| 				struct extent_buffer *eb, u64 flags, int level); | ||||
| int btrfs_free_extent(struct btrfs_trans_handle *trans, struct btrfs_ref *ref); | ||||
| 
 | ||||
| int btrfs_free_reserved_extent(struct btrfs_fs_info *fs_info, | ||||
| 			       u64 start, u64 len, int delalloc); | ||||
| int btrfs_pin_reserved_extent(struct btrfs_trans_handle *trans, u64 start, | ||||
| 			      u64 len); | ||||
| int btrfs_finish_extent_commit(struct btrfs_trans_handle *trans); | ||||
| int btrfs_inc_extent_ref(struct btrfs_trans_handle *trans, | ||||
| 			 struct btrfs_ref *generic_ref); | ||||
| 
 | ||||
| int btrfs_subvolume_reserve_metadata(struct btrfs_root *root, | ||||
| 				     struct btrfs_block_rsv *rsv, | ||||
| 				     int nitems, bool use_global_rsv); | ||||
|  |  | |||
|  | @ -45,6 +45,7 @@ | |||
| #include "subpage.h" | ||||
| #include "fs.h" | ||||
| #include "accessors.h" | ||||
| #include "extent-tree.h" | ||||
| 
 | ||||
| #define BTRFS_SUPER_FLAG_SUPP	(BTRFS_HEADER_FLAG_WRITTEN |\ | ||||
| 				 BTRFS_HEADER_FLAG_RELOC |\ | ||||
|  |  | |||
|  | @ -38,6 +38,7 @@ | |||
| #include "dev-replace.h" | ||||
| #include "fs.h" | ||||
| #include "accessors.h" | ||||
| #include "extent-tree.h" | ||||
| 
 | ||||
| #undef SCRAMBLE_DELAYED_REFS | ||||
| 
 | ||||
|  |  | |||
							
								
								
									
										72
									
								
								fs/btrfs/extent-tree.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										72
									
								
								fs/btrfs/extent-tree.h
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,72 @@ | |||
| /* SPDX-License-Identifier: GPL-2.0 */ | ||||
| 
 | ||||
| #ifndef BTRFS_EXTENT_TREE_H | ||||
| #define BTRFS_EXTENT_TREE_H | ||||
| 
 | ||||
| enum btrfs_inline_ref_type { | ||||
| 	BTRFS_REF_TYPE_INVALID, | ||||
| 	BTRFS_REF_TYPE_BLOCK, | ||||
| 	BTRFS_REF_TYPE_DATA, | ||||
| 	BTRFS_REF_TYPE_ANY, | ||||
| }; | ||||
| 
 | ||||
| int btrfs_get_extent_inline_ref_type(const struct extent_buffer *eb, | ||||
| 				     struct btrfs_extent_inline_ref *iref, | ||||
| 				     enum btrfs_inline_ref_type is_data); | ||||
| u64 hash_extent_data_ref(u64 root_objectid, u64 owner, u64 offset); | ||||
| 
 | ||||
| int btrfs_add_excluded_extent(struct btrfs_fs_info *fs_info, | ||||
| 			      u64 start, u64 num_bytes); | ||||
| void btrfs_free_excluded_extents(struct btrfs_block_group *cache); | ||||
| int btrfs_run_delayed_refs(struct btrfs_trans_handle *trans, unsigned long count); | ||||
| void btrfs_cleanup_ref_head_accounting(struct btrfs_fs_info *fs_info, | ||||
| 				  struct btrfs_delayed_ref_root *delayed_refs, | ||||
| 				  struct btrfs_delayed_ref_head *head); | ||||
| int btrfs_lookup_data_extent(struct btrfs_fs_info *fs_info, u64 start, u64 len); | ||||
| int btrfs_lookup_extent_info(struct btrfs_trans_handle *trans, | ||||
| 			     struct btrfs_fs_info *fs_info, u64 bytenr, | ||||
| 			     u64 offset, int metadata, u64 *refs, u64 *flags); | ||||
| int btrfs_pin_extent(struct btrfs_trans_handle *trans, u64 bytenr, u64 num, | ||||
| 		     int reserved); | ||||
| int btrfs_pin_extent_for_log_replay(struct btrfs_trans_handle *trans, | ||||
| 				    u64 bytenr, u64 num_bytes); | ||||
| int btrfs_exclude_logged_extents(struct extent_buffer *eb); | ||||
| int btrfs_cross_ref_exist(struct btrfs_root *root, | ||||
| 			  u64 objectid, u64 offset, u64 bytenr, bool strict, | ||||
| 			  struct btrfs_path *path); | ||||
| struct extent_buffer *btrfs_alloc_tree_block(struct btrfs_trans_handle *trans, | ||||
| 					     struct btrfs_root *root, | ||||
| 					     u64 parent, u64 root_objectid, | ||||
| 					     const struct btrfs_disk_key *key, | ||||
| 					     int level, u64 hint, | ||||
| 					     u64 empty_size, | ||||
| 					     enum btrfs_lock_nesting nest); | ||||
| void btrfs_free_tree_block(struct btrfs_trans_handle *trans, | ||||
| 			   u64 root_id, | ||||
| 			   struct extent_buffer *buf, | ||||
| 			   u64 parent, int last_ref); | ||||
| int btrfs_alloc_reserved_file_extent(struct btrfs_trans_handle *trans, | ||||
| 				     struct btrfs_root *root, u64 owner, | ||||
| 				     u64 offset, u64 ram_bytes, | ||||
| 				     struct btrfs_key *ins); | ||||
| int btrfs_alloc_logged_file_extent(struct btrfs_trans_handle *trans, | ||||
| 				   u64 root_objectid, u64 owner, u64 offset, | ||||
| 				   struct btrfs_key *ins); | ||||
| int btrfs_reserve_extent(struct btrfs_root *root, u64 ram_bytes, u64 num_bytes, | ||||
| 			 u64 min_alloc_size, u64 empty_size, u64 hint_byte, | ||||
| 			 struct btrfs_key *ins, int is_data, int delalloc); | ||||
| int btrfs_inc_ref(struct btrfs_trans_handle *trans, struct btrfs_root *root, | ||||
| 		  struct extent_buffer *buf, int full_backref); | ||||
| int btrfs_dec_ref(struct btrfs_trans_handle *trans, struct btrfs_root *root, | ||||
| 		  struct extent_buffer *buf, int full_backref); | ||||
| int btrfs_set_disk_extent_flags(struct btrfs_trans_handle *trans, | ||||
| 				struct extent_buffer *eb, u64 flags, int level); | ||||
| int btrfs_free_extent(struct btrfs_trans_handle *trans, struct btrfs_ref *ref); | ||||
| 
 | ||||
| int btrfs_free_reserved_extent(struct btrfs_fs_info *fs_info, | ||||
| 			       u64 start, u64 len, int delalloc); | ||||
| int btrfs_pin_reserved_extent(struct btrfs_trans_handle *trans, u64 start, u64 len); | ||||
| int btrfs_finish_extent_commit(struct btrfs_trans_handle *trans); | ||||
| int btrfs_inc_extent_ref(struct btrfs_trans_handle *trans, struct btrfs_ref *generic_ref); | ||||
| 
 | ||||
| #endif | ||||
|  | @ -32,6 +32,7 @@ | |||
| #include "subpage.h" | ||||
| #include "fs.h" | ||||
| #include "accessors.h" | ||||
| #include "extent-tree.h" | ||||
| 
 | ||||
| static struct kmem_cache *btrfs_inode_defrag_cachep; | ||||
| /*
 | ||||
|  |  | |||
|  | @ -14,6 +14,7 @@ | |||
| #include "block-group.h" | ||||
| #include "fs.h" | ||||
| #include "accessors.h" | ||||
| #include "extent-tree.h" | ||||
| 
 | ||||
| static int __add_block_group_free_space(struct btrfs_trans_handle *trans, | ||||
| 					struct btrfs_block_group *block_group, | ||||
|  |  | |||
|  | @ -12,6 +12,7 @@ | |||
| #include "print-tree.h" | ||||
| #include "space-info.h" | ||||
| #include "accessors.h" | ||||
| #include "extent-tree.h" | ||||
| 
 | ||||
| struct btrfs_inode_ref *btrfs_find_name_in_backref(struct extent_buffer *leaf, | ||||
| 						   int slot, | ||||
|  |  | |||
|  | @ -57,6 +57,7 @@ | |||
| #include "inode-item.h" | ||||
| #include "fs.h" | ||||
| #include "accessors.h" | ||||
| #include "extent-tree.h" | ||||
| 
 | ||||
| struct btrfs_iget_args { | ||||
| 	u64 ino; | ||||
|  |  | |||
|  | @ -52,6 +52,7 @@ | |||
| #include "subpage.h" | ||||
| #include "fs.h" | ||||
| #include "accessors.h" | ||||
| #include "extent-tree.h" | ||||
| 
 | ||||
| #ifdef CONFIG_64BIT | ||||
| /* If we have a 32-bit userspace and 64-bit kernel, then the UAPI
 | ||||
|  |  | |||
|  | @ -26,6 +26,7 @@ | |||
| #include "tree-mod-log.h" | ||||
| #include "fs.h" | ||||
| #include "accessors.h" | ||||
| #include "extent-tree.h" | ||||
| 
 | ||||
| /*
 | ||||
|  * Helpers to access qgroup reservation | ||||
|  |  | |||
|  | @ -30,6 +30,7 @@ | |||
| #include "space-info.h" | ||||
| #include "fs.h" | ||||
| #include "accessors.h" | ||||
| #include "extent-tree.h" | ||||
| 
 | ||||
| /*
 | ||||
|  * Relocation overview | ||||
|  |  | |||
|  | @ -12,6 +12,7 @@ | |||
| #include "zoned.h" | ||||
| #include "fs.h" | ||||
| #include "accessors.h" | ||||
| #include "extent-tree.h" | ||||
| 
 | ||||
| /*
 | ||||
|  * HOW DOES SPACE RESERVATION WORK | ||||
|  |  | |||
|  | @ -26,6 +26,7 @@ | |||
| #include "zoned.h" | ||||
| #include "fs.h" | ||||
| #include "accessors.h" | ||||
| #include "extent-tree.h" | ||||
| 
 | ||||
| static struct kmem_cache *btrfs_trans_handle_cachep; | ||||
| 
 | ||||
|  |  | |||
|  | @ -23,6 +23,7 @@ | |||
| #include "inode-item.h" | ||||
| #include "fs.h" | ||||
| #include "accessors.h" | ||||
| #include "extent-tree.h" | ||||
| 
 | ||||
| #define MAX_CONFLICT_INODES 10 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Josef Bacik
						Josef Bacik