mirror of
				https://github.com/torvalds/linux.git
				synced 2025-10-31 16:48:26 +02:00 
			
		
		
		
	btrfs: add forward declarations and headers, part 2
Do a cleanup in more headers: - add forward declarations for types referenced by pointers - add includes when types need them This fixes potential compilation problems if the headers are reordered or the missing includes are not provided indirectly. Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
		
							parent
							
								
									22b46bdc5f
								
							
						
					
					
						commit
						602035d7fe
					
				
					 26 changed files with 206 additions and 19 deletions
				
			
		|  | @ -7,12 +7,14 @@ | |||
| #ifndef BTRFS_BIO_H | ||||
| #define BTRFS_BIO_H | ||||
| 
 | ||||
| #include <linux/types.h> | ||||
| #include <linux/bio.h> | ||||
| #include <linux/workqueue.h> | ||||
| #include "tree-checker.h" | ||||
| 
 | ||||
| struct btrfs_bio; | ||||
| struct btrfs_fs_info; | ||||
| struct btrfs_inode; | ||||
| 
 | ||||
| #define BTRFS_BIO_INLINE_CSUM_SIZE	64 | ||||
| 
 | ||||
|  |  | |||
|  | @ -3,8 +3,15 @@ | |||
| #ifndef BTRFS_BLOCK_RSV_H | ||||
| #define BTRFS_BLOCK_RSV_H | ||||
| 
 | ||||
| #include <linux/types.h> | ||||
| #include <linux/compiler.h> | ||||
| #include <linux/spinlock.h> | ||||
| 
 | ||||
| struct btrfs_trans_handle; | ||||
| struct btrfs_root; | ||||
| struct btrfs_space_info; | ||||
| struct btrfs_block_rsv; | ||||
| struct btrfs_fs_info; | ||||
| enum btrfs_reserve_flush_enum; | ||||
| 
 | ||||
| /*
 | ||||
|  |  | |||
|  | @ -7,10 +7,18 @@ | |||
| #define BTRFS_COMPRESSION_H | ||||
| 
 | ||||
| #include <linux/sizes.h> | ||||
| #include <linux/mm.h> | ||||
| #include <linux/list.h> | ||||
| #include <linux/workqueue.h> | ||||
| #include <linux/wait.h> | ||||
| #include "bio.h" | ||||
| 
 | ||||
| struct address_space; | ||||
| struct page; | ||||
| struct inode; | ||||
| struct btrfs_inode; | ||||
| struct btrfs_ordered_extent; | ||||
| struct btrfs_bio; | ||||
| 
 | ||||
| /*
 | ||||
|  * We want to make sure that amount of RAM required to uncompress an extent is | ||||
|  | @ -32,8 +40,6 @@ static_assert((BTRFS_MAX_COMPRESSED % PAGE_SIZE) == 0); | |||
| 
 | ||||
| #define	BTRFS_ZLIB_DEFAULT_LEVEL		3 | ||||
| 
 | ||||
| struct page; | ||||
| 
 | ||||
| struct compressed_bio { | ||||
| 	/* Number of compressed pages in the array */ | ||||
| 	unsigned int nr_pages; | ||||
|  |  | |||
|  | @ -7,15 +7,23 @@ | |||
| #ifndef BTRFS_DELAYED_INODE_H | ||||
| #define BTRFS_DELAYED_INODE_H | ||||
| 
 | ||||
| #include <linux/types.h> | ||||
| #include <linux/rbtree.h> | ||||
| #include <linux/spinlock.h> | ||||
| #include <linux/mutex.h> | ||||
| #include <linux/list.h> | ||||
| #include <linux/wait.h> | ||||
| #include <linux/fs.h> | ||||
| #include <linux/atomic.h> | ||||
| #include <linux/refcount.h> | ||||
| #include "ctree.h" | ||||
| 
 | ||||
| struct btrfs_disk_key; | ||||
| struct btrfs_fs_info; | ||||
| struct btrfs_inode; | ||||
| struct btrfs_root; | ||||
| struct btrfs_trans_handle; | ||||
| 
 | ||||
| enum btrfs_delayed_item_type { | ||||
| 	BTRFS_DELAYED_INSERTION_ITEM, | ||||
| 	BTRFS_DELAYED_DELETION_ITEM | ||||
|  |  | |||
|  | @ -7,9 +7,21 @@ | |||
| #define BTRFS_DISK_IO_H | ||||
| 
 | ||||
| #include <linux/sizes.h> | ||||
| #include <linux/compiler_types.h> | ||||
| #include "ctree.h" | ||||
| #include "fs.h" | ||||
| 
 | ||||
| struct block_device; | ||||
| struct super_block; | ||||
| struct extent_buffer; | ||||
| struct btrfs_device; | ||||
| struct btrfs_fs_devices; | ||||
| struct btrfs_fs_info; | ||||
| struct btrfs_super_block; | ||||
| struct btrfs_trans_handle; | ||||
| struct btrfs_tree_parent_check; | ||||
| struct btrfs_transaction; | ||||
| 
 | ||||
| #define BTRFS_SUPER_MIRROR_MAX	 3 | ||||
| #define BTRFS_SUPER_MIRROR_SHIFT 12 | ||||
| 
 | ||||
|  | @ -29,10 +41,6 @@ static inline u64 btrfs_sb_offset(int mirror) | |||
| 	return BTRFS_SUPER_INFO_OFFSET; | ||||
| } | ||||
| 
 | ||||
| struct btrfs_device; | ||||
| struct btrfs_fs_devices; | ||||
| struct btrfs_tree_parent_check; | ||||
| 
 | ||||
| void btrfs_check_leaked_roots(struct btrfs_fs_info *fs_info); | ||||
| void btrfs_init_fs_info(struct btrfs_fs_info *fs_info); | ||||
| struct extent_buffer *read_tree_block(struct btrfs_fs_info *fs_info, u64 bytenr, | ||||
|  |  | |||
|  | @ -3,9 +3,16 @@ | |||
| #ifndef BTRFS_EXTENT_IO_TREE_H | ||||
| #define BTRFS_EXTENT_IO_TREE_H | ||||
| 
 | ||||
| #include <linux/rbtree.h> | ||||
| #include <linux/spinlock.h> | ||||
| #include <linux/refcount.h> | ||||
| #include <linux/list.h> | ||||
| #include <linux/wait.h> | ||||
| #include "misc.h" | ||||
| 
 | ||||
| struct extent_changeset; | ||||
| struct btrfs_fs_info; | ||||
| struct btrfs_inode; | ||||
| 
 | ||||
| /* Bits for the extent state */ | ||||
| enum { | ||||
|  |  | |||
|  | @ -3,11 +3,20 @@ | |||
| #ifndef BTRFS_EXTENT_TREE_H | ||||
| #define BTRFS_EXTENT_TREE_H | ||||
| 
 | ||||
| #include <linux/types.h> | ||||
| #include "misc.h" | ||||
| #include "block-group.h" | ||||
| #include "locking.h" | ||||
| 
 | ||||
| struct extent_buffer; | ||||
| struct btrfs_free_cluster; | ||||
| struct btrfs_fs_info; | ||||
| struct btrfs_root; | ||||
| struct btrfs_path; | ||||
| struct btrfs_disk_key; | ||||
| struct btrfs_delayed_ref_head; | ||||
| struct btrfs_delayed_ref_root; | ||||
| struct btrfs_extent_inline_ref; | ||||
| 
 | ||||
| enum btrfs_extent_allocation_policy { | ||||
| 	BTRFS_EXTENT_ALLOC_CLUSTERED, | ||||
|  |  | |||
|  | @ -7,12 +7,32 @@ | |||
| #include <linux/refcount.h> | ||||
| #include <linux/fiemap.h> | ||||
| #include <linux/btrfs_tree.h> | ||||
| #include <linux/spinlock.h> | ||||
| #include <linux/atomic.h> | ||||
| #include <linux/rwsem.h> | ||||
| #include <linux/list.h> | ||||
| #include <linux/slab.h> | ||||
| #include "compression.h" | ||||
| #include "messages.h" | ||||
| #include "ulist.h" | ||||
| #include "misc.h" | ||||
| 
 | ||||
| struct page; | ||||
| struct file; | ||||
| struct folio; | ||||
| struct inode; | ||||
| struct fiemap_extent_info; | ||||
| struct readahead_control; | ||||
| struct address_space; | ||||
| struct writeback_control; | ||||
| struct extent_io_tree; | ||||
| struct extent_map_tree; | ||||
| struct btrfs_block_group; | ||||
| struct btrfs_fs_info; | ||||
| struct btrfs_inode; | ||||
| struct btrfs_root; | ||||
| struct btrfs_trans_handle; | ||||
| struct btrfs_tree_parent_check; | ||||
| 
 | ||||
| enum { | ||||
| 	EXTENT_BUFFER_UPTODATE, | ||||
|  | @ -64,11 +84,6 @@ enum { | |||
| #define BITMAP_LAST_BYTE_MASK(nbits) \ | ||||
| 	(BYTE_MASK >> (-(nbits) & (BITS_PER_BYTE - 1))) | ||||
| 
 | ||||
| struct btrfs_root; | ||||
| struct btrfs_inode; | ||||
| struct btrfs_fs_info; | ||||
| struct extent_io_tree; | ||||
| struct btrfs_tree_parent_check; | ||||
| 
 | ||||
| int __init extent_buffer_init_cachep(void); | ||||
| void __cold extent_buffer_free_cachep(void); | ||||
|  |  | |||
|  | @ -3,11 +3,18 @@ | |||
| #ifndef BTRFS_EXTENT_MAP_H | ||||
| #define BTRFS_EXTENT_MAP_H | ||||
| 
 | ||||
| #include <linux/compiler_types.h> | ||||
| #include <linux/rwlock_types.h> | ||||
| #include <linux/rbtree.h> | ||||
| #include <linux/list.h> | ||||
| #include <linux/refcount.h> | ||||
| #include "misc.h" | ||||
| #include "extent_map.h" | ||||
| #include "compression.h" | ||||
| 
 | ||||
| struct btrfs_inode; | ||||
| struct btrfs_fs_info; | ||||
| 
 | ||||
| #define EXTENT_MAP_LAST_BYTE ((u64)-4) | ||||
| #define EXTENT_MAP_HOLE ((u64)-3) | ||||
| #define EXTENT_MAP_INLINE ((u64)-2) | ||||
|  |  | |||
|  | @ -3,9 +3,20 @@ | |||
| #ifndef BTRFS_FILE_ITEM_H | ||||
| #define BTRFS_FILE_ITEM_H | ||||
| 
 | ||||
| #include <linux/list.h> | ||||
| #include <uapi/linux/btrfs_tree.h> | ||||
| #include "accessors.h" | ||||
| 
 | ||||
| struct extent_map; | ||||
| struct btrfs_file_extent_item; | ||||
| struct btrfs_fs_info; | ||||
| struct btrfs_path; | ||||
| struct btrfs_bio; | ||||
| struct btrfs_trans_handle; | ||||
| struct btrfs_root; | ||||
| struct btrfs_ordered_sum; | ||||
| struct btrfs_path; | ||||
| struct btrfs_inode; | ||||
| 
 | ||||
| #define BTRFS_FILE_EXTENT_INLINE_DATA_START		\ | ||||
| 		(offsetof(struct btrfs_file_extent_item, disk_bytenr)) | ||||
|  |  | |||
|  | @ -6,6 +6,19 @@ | |||
| #ifndef BTRFS_FREE_SPACE_CACHE_H | ||||
| #define BTRFS_FREE_SPACE_CACHE_H | ||||
| 
 | ||||
| #include <linux/rbtree.h> | ||||
| #include <linux/list.h> | ||||
| #include <linux/spinlock.h> | ||||
| #include <linux/mutex.h> | ||||
| #include "fs.h" | ||||
| 
 | ||||
| struct inode; | ||||
| struct page; | ||||
| struct btrfs_fs_info; | ||||
| struct btrfs_path; | ||||
| struct btrfs_trans_handle; | ||||
| struct btrfs_trim_block_group; | ||||
| 
 | ||||
| /*
 | ||||
|  * This is the trim state of an extent or bitmap. | ||||
|  * | ||||
|  |  | |||
|  | @ -6,7 +6,13 @@ | |||
| #ifndef BTRFS_FREE_SPACE_TREE_H | ||||
| #define BTRFS_FREE_SPACE_TREE_H | ||||
| 
 | ||||
| #include <linux/bits.h> | ||||
| 
 | ||||
| struct btrfs_caching_control; | ||||
| struct btrfs_fs_info; | ||||
| struct btrfs_path; | ||||
| struct btrfs_block_group; | ||||
| struct btrfs_trans_handle; | ||||
| 
 | ||||
| /*
 | ||||
|  * The default size for new free space bitmap items. The last bitmap in a block | ||||
|  |  | |||
|  | @ -6,14 +6,15 @@ | |||
| #include <linux/types.h> | ||||
| #include <linux/crc32c.h> | ||||
| 
 | ||||
| struct fscrypt_str; | ||||
| struct extent_buffer; | ||||
| struct btrfs_trans_handle; | ||||
| struct btrfs_root; | ||||
| struct btrfs_path; | ||||
| struct btrfs_key; | ||||
| struct btrfs_inode_extref; | ||||
| struct btrfs_inode; | ||||
| struct extent_buffer; | ||||
| struct fscrypt_str; | ||||
| struct btrfs_truncate_control; | ||||
| 
 | ||||
| /*
 | ||||
|  * Return this if we need to call truncate_block for the last bit of the | ||||
|  |  | |||
|  | @ -8,8 +8,14 @@ | |||
| 
 | ||||
| #include <linux/atomic.h> | ||||
| #include <linux/wait.h> | ||||
| #include <linux/lockdep.h> | ||||
| #include <linux/percpu_counter.h> | ||||
| #include "extent_io.h" | ||||
| #include "locking.h" | ||||
| 
 | ||||
| struct extent_buffer; | ||||
| struct btrfs_path; | ||||
| struct btrfs_root; | ||||
| 
 | ||||
| #define BTRFS_WRITE_LOCK 1 | ||||
| #define BTRFS_READ_LOCK 2 | ||||
|  | @ -157,8 +163,6 @@ enum btrfs_lockdep_trans_states { | |||
| static_assert(BTRFS_NESTING_MAX <= MAX_LOCKDEP_SUBCLASSES, | ||||
| 	      "too many lock subclasses defined"); | ||||
| 
 | ||||
| struct btrfs_path; | ||||
| 
 | ||||
| void __btrfs_tree_lock(struct extent_buffer *eb, enum btrfs_lock_nesting nest); | ||||
| void btrfs_tree_lock(struct extent_buffer *eb); | ||||
| void btrfs_tree_unlock(struct extent_buffer *eb); | ||||
|  |  | |||
|  | @ -3,8 +3,10 @@ | |||
| #ifndef BTRFS_LRU_CACHE_H | ||||
| #define BTRFS_LRU_CACHE_H | ||||
| 
 | ||||
| #include <linux/types.h> | ||||
| #include <linux/maple_tree.h> | ||||
| #include <linux/list.h> | ||||
| #include "lru_cache.h" | ||||
| 
 | ||||
| /*
 | ||||
|  * A cache entry. This is meant to be embedded in a structure of a user of | ||||
|  |  | |||
|  | @ -3,6 +3,8 @@ | |||
| #ifndef BTRFS_MISC_H | ||||
| #define BTRFS_MISC_H | ||||
| 
 | ||||
| #include <linux/types.h> | ||||
| #include <linux/bitmap.h> | ||||
| #include <linux/sched.h> | ||||
| #include <linux/wait.h> | ||||
| #include <linux/math64.h> | ||||
|  |  | |||
|  | @ -6,8 +6,21 @@ | |||
| #ifndef BTRFS_ORDERED_DATA_H | ||||
| #define BTRFS_ORDERED_DATA_H | ||||
| 
 | ||||
| #include <linux/types.h> | ||||
| #include <linux/list.h> | ||||
| #include <linux/refcount.h> | ||||
| #include <linux/completion.h> | ||||
| #include <linux/rbtree.h> | ||||
| #include <linux/wait.h> | ||||
| #include "async-thread.h" | ||||
| 
 | ||||
| struct inode; | ||||
| struct page; | ||||
| struct extent_state; | ||||
| struct btrfs_inode; | ||||
| struct btrfs_root; | ||||
| struct btrfs_fs_info; | ||||
| 
 | ||||
| struct btrfs_ordered_sum { | ||||
| 	/*
 | ||||
| 	 * Logical start address and length for of the blocks covered by | ||||
|  |  | |||
|  | @ -7,9 +7,18 @@ | |||
| #ifndef BTRFS_RAID56_H | ||||
| #define BTRFS_RAID56_H | ||||
| 
 | ||||
| #include <linux/types.h> | ||||
| #include <linux/list.h> | ||||
| #include <linux/spinlock.h> | ||||
| #include <linux/bio.h> | ||||
| #include <linux/refcount.h> | ||||
| #include <linux/workqueue.h> | ||||
| #include "volumes.h" | ||||
| 
 | ||||
| struct page; | ||||
| struct sector_ptr; | ||||
| struct btrfs_fs_info; | ||||
| 
 | ||||
| enum btrfs_rbio_ops { | ||||
| 	BTRFS_RBIO_WRITE, | ||||
| 	BTRFS_RBIO_READ_REBUILD, | ||||
|  |  | |||
|  | @ -8,6 +8,11 @@ | |||
| #define BTRFS_SEND_H | ||||
| 
 | ||||
| #include <linux/types.h> | ||||
| #include <linux/sizes.h> | ||||
| #include <linux/align.h> | ||||
| 
 | ||||
| struct inode; | ||||
| struct btrfs_ioctl_send_args; | ||||
| 
 | ||||
| #define BTRFS_SEND_STREAM_MAGIC "btrfs-stream" | ||||
| /* Conditional support for the upcoming protocol version. */ | ||||
|  | @ -25,9 +30,6 @@ | |||
| #define BTRFS_SEND_BUF_SIZE_V1				SZ_64K | ||||
| #define BTRFS_SEND_BUF_SIZE_V2	ALIGN(SZ_16K + BTRFS_MAX_COMPRESSED, PAGE_SIZE) | ||||
| 
 | ||||
| struct inode; | ||||
| struct btrfs_ioctl_send_args; | ||||
| 
 | ||||
| enum btrfs_tlv_type { | ||||
| 	BTRFS_TLV_U8, | ||||
| 	BTRFS_TLV_U16, | ||||
|  |  | |||
|  | @ -4,8 +4,17 @@ | |||
| #define BTRFS_SPACE_INFO_H | ||||
| 
 | ||||
| #include <trace/events/btrfs.h> | ||||
| #include <linux/spinlock.h> | ||||
| #include <linux/list.h> | ||||
| #include <linux/kobject.h> | ||||
| #include <linux/lockdep.h> | ||||
| #include <linux/wait.h> | ||||
| #include <linux/rwsem.h> | ||||
| #include "volumes.h" | ||||
| 
 | ||||
| struct btrfs_fs_info; | ||||
| struct btrfs_block_group; | ||||
| 
 | ||||
| /*
 | ||||
|  * Different levels for to flush space when doing space reservations. | ||||
|  * | ||||
|  |  | |||
|  | @ -4,6 +4,11 @@ | |||
| #define BTRFS_SUBPAGE_H | ||||
| 
 | ||||
| #include <linux/spinlock.h> | ||||
| #include <linux/atomic.h> | ||||
| 
 | ||||
| struct address_space; | ||||
| struct folio; | ||||
| struct btrfs_fs_info; | ||||
| 
 | ||||
| /*
 | ||||
|  * Extra info for subpapge bitmap. | ||||
|  |  | |||
|  | @ -6,12 +6,27 @@ | |||
| #ifndef BTRFS_TRANSACTION_H | ||||
| #define BTRFS_TRANSACTION_H | ||||
| 
 | ||||
| #include <linux/atomic.h> | ||||
| #include <linux/refcount.h> | ||||
| #include <linux/list.h> | ||||
| #include <linux/time64.h> | ||||
| #include <linux/mutex.h> | ||||
| #include <linux/wait.h> | ||||
| #include "btrfs_inode.h" | ||||
| #include "delayed-ref.h" | ||||
| #include "ctree.h" | ||||
| #include "extent-io-tree.h" | ||||
| #include "block-rsv.h" | ||||
| #include "messages.h" | ||||
| #include "misc.h" | ||||
| 
 | ||||
| struct dentry; | ||||
| struct inode; | ||||
| struct btrfs_pending_snapshot; | ||||
| struct btrfs_fs_info; | ||||
| struct btrfs_root_item; | ||||
| struct btrfs_root; | ||||
| struct btrfs_path; | ||||
| 
 | ||||
| /* Radix-tree tag for roots that are part of the trasaction. */ | ||||
| #define BTRFS_ROOT_TRANS_TAG			0 | ||||
| 
 | ||||
|  |  | |||
|  | @ -6,10 +6,12 @@ | |||
| #ifndef BTRFS_TREE_CHECKER_H | ||||
| #define BTRFS_TREE_CHECKER_H | ||||
| 
 | ||||
| #include <linux/types.h> | ||||
| #include <uapi/linux/btrfs_tree.h> | ||||
| 
 | ||||
| struct extent_buffer; | ||||
| struct btrfs_chunk; | ||||
| struct btrfs_key; | ||||
| 
 | ||||
| /* All the extra info needed to verify the parentness of a tree block. */ | ||||
| struct btrfs_tree_parent_check { | ||||
|  |  | |||
|  | @ -6,10 +6,18 @@ | |||
| #ifndef BTRFS_TREE_LOG_H | ||||
| #define BTRFS_TREE_LOG_H | ||||
| 
 | ||||
| #include <linux/list.h> | ||||
| #include <linux/fs.h> | ||||
| #include "messages.h" | ||||
| #include "ctree.h" | ||||
| #include "transaction.h" | ||||
| 
 | ||||
| struct inode; | ||||
| struct dentry; | ||||
| struct btrfs_ordered_extent; | ||||
| struct btrfs_root; | ||||
| struct btrfs_trans_handle; | ||||
| 
 | ||||
| /* return value for btrfs_log_dentry_safe that means we don't need to log it at all */ | ||||
| #define BTRFS_NO_LOG_SYNC 256 | ||||
| 
 | ||||
|  |  | |||
|  | @ -7,6 +7,7 @@ | |||
| #ifndef BTRFS_ULIST_H | ||||
| #define BTRFS_ULIST_H | ||||
| 
 | ||||
| #include <linux/types.h> | ||||
| #include <linux/list.h> | ||||
| #include <linux/rbtree.h> | ||||
| 
 | ||||
|  |  | |||
|  | @ -4,12 +4,27 @@ | |||
| #define BTRFS_ZONED_H | ||||
| 
 | ||||
| #include <linux/types.h> | ||||
| #include <linux/atomic.h> | ||||
| #include <linux/blkdev.h> | ||||
| #include <linux/blkzoned.h> | ||||
| #include <linux/errno.h> | ||||
| #include <linux/spinlock.h> | ||||
| #include <linux/mutex.h> | ||||
| #include "messages.h" | ||||
| #include "volumes.h" | ||||
| #include "disk-io.h" | ||||
| #include "block-group.h" | ||||
| #include "btrfs_inode.h" | ||||
| #include "fs.h" | ||||
| 
 | ||||
| struct block_device; | ||||
| struct extent_buffer; | ||||
| struct btrfs_bio; | ||||
| struct btrfs_ordered_extent; | ||||
| struct btrfs_fs_info; | ||||
| struct btrfs_space_info; | ||||
| struct btrfs_eb_write_context; | ||||
| struct btrfs_fs_devices; | ||||
| 
 | ||||
| #define BTRFS_DEFAULT_RECLAIM_THRESH           			(75) | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 David Sterba
						David Sterba