forked from mirrors/linux
		
	ext4: rationalize ext4_extents.h inclusion
Previously, ext4_extents.h was being included at the end of ext4.h, which was bad for a number of reasons: (a) it was not being included in the expected place, and (b) it caused the header to be included multiple times. There were #ifdef's to prevent this from causing any problems, but it still was unnecessary. By moving the function declarations that were in ext4_extents.h to ext4.h, which is standard practice for where the function declarations for the rest of ext4.h can be found, we can remove ext4_extents.h from being included in ext4.h at all, and then we can only include ext4_extents.h where it is needed in ext4's source files. It should be possible to move a few more things into ext4.h, and further reduce the number of source files that need to #include ext4_extents.h, but that's a cleanup for another day. Reported-by: Sachin Kamat <sachin.kamat@linaro.org> Reported-by: Wei Yongjun <weiyj.lk@gmail.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit is contained in:
		
							parent
							
								
									766f44d46a
								
							
						
					
					
						commit
						4a092d7379
					
				
					 8 changed files with 37 additions and 30 deletions
				
			
		|  | @ -57,6 +57,16 @@ | |||
| #define ext4_debug(fmt, ...)	no_printk(fmt, ##__VA_ARGS__) | ||||
| #endif | ||||
| 
 | ||||
| /*
 | ||||
|  * Turn on EXT_DEBUG to get lots of info about extents operations. | ||||
|  */ | ||||
| #define EXT_DEBUG__ | ||||
| #ifdef EXT_DEBUG | ||||
| #define ext_debug(fmt, ...)	printk(fmt, ##__VA_ARGS__) | ||||
| #else | ||||
| #define ext_debug(fmt, ...)	no_printk(fmt, ##__VA_ARGS__) | ||||
| #endif | ||||
| 
 | ||||
| #define EXT4_ERROR_INODE(inode, fmt, a...) \ | ||||
| 	ext4_error_inode((inode), __func__, __LINE__, 0, (fmt), ## a) | ||||
| 
 | ||||
|  | @ -2399,6 +2409,9 @@ extern int ext4_check_blockref(const char *, unsigned int, | |||
| 			       struct inode *, __le32 *, unsigned int); | ||||
| 
 | ||||
| /* extents.c */ | ||||
| struct ext4_ext_path; | ||||
| struct ext4_extent; | ||||
| 
 | ||||
| extern int ext4_ext_tree_init(handle_t *handle, struct inode *); | ||||
| extern int ext4_ext_writepage_trans_blocks(struct inode *, int); | ||||
| extern int ext4_ext_index_trans_blocks(struct inode *inode, int nrblocks, | ||||
|  | @ -2416,8 +2429,27 @@ extern int ext4_convert_unwritten_extents(struct inode *inode, loff_t offset, | |||
| 			  ssize_t len); | ||||
| extern int ext4_map_blocks(handle_t *handle, struct inode *inode, | ||||
| 			   struct ext4_map_blocks *map, int flags); | ||||
| extern int ext4_ext_calc_metadata_amount(struct inode *inode, | ||||
| 					 ext4_lblk_t lblocks); | ||||
| extern int ext4_extent_tree_init(handle_t *, struct inode *); | ||||
| extern int ext4_ext_calc_credits_for_single_extent(struct inode *inode, | ||||
| 						   int num, | ||||
| 						   struct ext4_ext_path *path); | ||||
| extern int ext4_can_extents_be_merged(struct inode *inode, | ||||
| 				      struct ext4_extent *ex1, | ||||
| 				      struct ext4_extent *ex2); | ||||
| extern int ext4_ext_insert_extent(handle_t *, struct inode *, | ||||
| 				  struct ext4_ext_path *, | ||||
| 				  struct ext4_extent *, int); | ||||
| extern struct ext4_ext_path *ext4_ext_find_extent(struct inode *, ext4_lblk_t, | ||||
| 						  struct ext4_ext_path *); | ||||
| extern void ext4_ext_drop_refs(struct ext4_ext_path *); | ||||
| extern int ext4_ext_check_inode(struct inode *inode); | ||||
| extern int ext4_find_delalloc_cluster(struct inode *inode, ext4_lblk_t lblk); | ||||
| extern int ext4_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, | ||||
| 			__u64 start, __u64 len); | ||||
| 
 | ||||
| 
 | ||||
| /* move_extent.c */ | ||||
| extern int ext4_move_extents(struct file *o_filp, struct file *d_filp, | ||||
| 			     __u64 start_orig, __u64 start_donor, | ||||
|  | @ -2505,6 +2537,4 @@ extern void ext4_resize_end(struct super_block *sb); | |||
| 
 | ||||
| #endif	/* __KERNEL__ */ | ||||
| 
 | ||||
| #include "ext4_extents.h" | ||||
| 
 | ||||
| #endif	/* _EXT4_H */ | ||||
|  |  | |||
|  | @ -42,16 +42,6 @@ | |||
|  */ | ||||
| #define CHECK_BINSEARCH__ | ||||
| 
 | ||||
| /*
 | ||||
|  * Turn on EXT_DEBUG to get lots of info about extents operations. | ||||
|  */ | ||||
| #define EXT_DEBUG__ | ||||
| #ifdef EXT_DEBUG | ||||
| #define ext_debug(fmt, ...)	printk(fmt, ##__VA_ARGS__) | ||||
| #else | ||||
| #define ext_debug(fmt, ...)	no_printk(fmt, ##__VA_ARGS__) | ||||
| #endif | ||||
| 
 | ||||
| /*
 | ||||
|  * If EXT_STATS is defined then stats numbers are collected. | ||||
|  * These number will be displayed at umount time. | ||||
|  | @ -286,20 +276,5 @@ static inline void ext4_idx_store_pblock(struct ext4_extent_idx *ix, | |||
| 				     0xffff); | ||||
| } | ||||
| 
 | ||||
| extern int ext4_ext_calc_metadata_amount(struct inode *inode, | ||||
| 					 ext4_lblk_t lblocks); | ||||
| extern int ext4_extent_tree_init(handle_t *, struct inode *); | ||||
| extern int ext4_ext_calc_credits_for_single_extent(struct inode *inode, | ||||
| 						   int num, | ||||
| 						   struct ext4_ext_path *path); | ||||
| extern int ext4_can_extents_be_merged(struct inode *inode, | ||||
| 				      struct ext4_extent *ex1, | ||||
| 				      struct ext4_extent *ex2); | ||||
| extern int ext4_ext_insert_extent(handle_t *, struct inode *, struct ext4_ext_path *, struct ext4_extent *, int); | ||||
| extern struct ext4_ext_path *ext4_ext_find_extent(struct inode *, ext4_lblk_t, | ||||
| 							struct ext4_ext_path *); | ||||
| extern void ext4_ext_drop_refs(struct ext4_ext_path *); | ||||
| extern int ext4_ext_check_inode(struct inode *inode); | ||||
| extern int ext4_find_delalloc_cluster(struct inode *inode, ext4_lblk_t lblk); | ||||
| #endif /* _EXT4_EXTENTS */ | ||||
| 
 | ||||
|  |  | |||
|  | @ -41,6 +41,7 @@ | |||
| #include <asm/uaccess.h> | ||||
| #include <linux/fiemap.h> | ||||
| #include "ext4_jbd2.h" | ||||
| #include "ext4_extents.h" | ||||
| 
 | ||||
| #include <trace/events/ext4.h> | ||||
| 
 | ||||
|  |  | |||
|  | @ -22,6 +22,7 @@ | |||
| 
 | ||||
| #include "ext4_jbd2.h" | ||||
| #include "truncate.h" | ||||
| #include "ext4_extents.h"	/* Needed for EXT_MAX_BLOCKS */ | ||||
| 
 | ||||
| #include <trace/events/ext4.h> | ||||
| 
 | ||||
|  |  | |||
|  | @ -14,6 +14,7 @@ | |||
| 
 | ||||
| #include <linux/slab.h> | ||||
| #include "ext4_jbd2.h" | ||||
| #include "ext4_extents.h" | ||||
| 
 | ||||
| /*
 | ||||
|  * The contiguous blocks details which can be | ||||
|  |  | |||
|  | @ -18,6 +18,7 @@ | |||
| #include <linux/slab.h> | ||||
| #include "ext4_jbd2.h" | ||||
| #include "ext4.h" | ||||
| #include "ext4_extents.h" | ||||
| 
 | ||||
| /**
 | ||||
|  * get_ext_path - Find an extent path for designated logical block number. | ||||
|  |  | |||
|  | @ -27,7 +27,6 @@ | |||
| #include "ext4_jbd2.h" | ||||
| #include "xattr.h" | ||||
| #include "acl.h" | ||||
| #include "ext4_extents.h" | ||||
| 
 | ||||
| static struct kmem_cache *io_page_cachep, *io_end_cachep; | ||||
| 
 | ||||
|  |  | |||
|  | @ -45,12 +45,11 @@ | |||
| #include <linux/freezer.h> | ||||
| 
 | ||||
| #include "ext4.h" | ||||
| #include "ext4_extents.h" | ||||
| #include "ext4_extents.h"	/* Needed for trace points definition */ | ||||
| #include "ext4_jbd2.h" | ||||
| #include "xattr.h" | ||||
| #include "acl.h" | ||||
| #include "mballoc.h" | ||||
| #include "ext4_extents.h" | ||||
| 
 | ||||
| #define CREATE_TRACE_POINTS | ||||
| #include <trace/events/ext4.h> | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue
	
	 Theodore Ts'o
						Theodore Ts'o