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__) | #define ext4_debug(fmt, ...)	no_printk(fmt, ##__VA_ARGS__) | ||||||
| #endif | #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...) \ | #define EXT4_ERROR_INODE(inode, fmt, a...) \ | ||||||
| 	ext4_error_inode((inode), __func__, __LINE__, 0, (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); | 			       struct inode *, __le32 *, unsigned int); | ||||||
| 
 | 
 | ||||||
| /* extents.c */ | /* extents.c */ | ||||||
|  | struct ext4_ext_path; | ||||||
|  | struct ext4_extent; | ||||||
|  | 
 | ||||||
| extern int ext4_ext_tree_init(handle_t *handle, struct inode *); | 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_writepage_trans_blocks(struct inode *, int); | ||||||
| extern int ext4_ext_index_trans_blocks(struct inode *inode, int nrblocks, | 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); | 			  ssize_t len); | ||||||
| extern int ext4_map_blocks(handle_t *handle, struct inode *inode, | extern int ext4_map_blocks(handle_t *handle, struct inode *inode, | ||||||
| 			   struct ext4_map_blocks *map, int flags); | 			   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, | extern int ext4_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, | ||||||
| 			__u64 start, __u64 len); | 			__u64 start, __u64 len); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
| /* move_extent.c */ | /* move_extent.c */ | ||||||
| extern int ext4_move_extents(struct file *o_filp, struct file *d_filp, | extern int ext4_move_extents(struct file *o_filp, struct file *d_filp, | ||||||
| 			     __u64 start_orig, __u64 start_donor, | 			     __u64 start_orig, __u64 start_donor, | ||||||
|  | @ -2505,6 +2537,4 @@ extern void ext4_resize_end(struct super_block *sb); | ||||||
| 
 | 
 | ||||||
| #endif	/* __KERNEL__ */ | #endif	/* __KERNEL__ */ | ||||||
| 
 | 
 | ||||||
| #include "ext4_extents.h" |  | ||||||
| 
 |  | ||||||
| #endif	/* _EXT4_H */ | #endif	/* _EXT4_H */ | ||||||
|  |  | ||||||
|  | @ -42,16 +42,6 @@ | ||||||
|  */ |  */ | ||||||
| #define CHECK_BINSEARCH__ | #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. |  * If EXT_STATS is defined then stats numbers are collected. | ||||||
|  * These number will be displayed at umount time. |  * 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); | 				     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 */ | #endif /* _EXT4_EXTENTS */ | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -41,6 +41,7 @@ | ||||||
| #include <asm/uaccess.h> | #include <asm/uaccess.h> | ||||||
| #include <linux/fiemap.h> | #include <linux/fiemap.h> | ||||||
| #include "ext4_jbd2.h" | #include "ext4_jbd2.h" | ||||||
|  | #include "ext4_extents.h" | ||||||
| 
 | 
 | ||||||
| #include <trace/events/ext4.h> | #include <trace/events/ext4.h> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -22,6 +22,7 @@ | ||||||
| 
 | 
 | ||||||
| #include "ext4_jbd2.h" | #include "ext4_jbd2.h" | ||||||
| #include "truncate.h" | #include "truncate.h" | ||||||
|  | #include "ext4_extents.h"	/* Needed for EXT_MAX_BLOCKS */ | ||||||
| 
 | 
 | ||||||
| #include <trace/events/ext4.h> | #include <trace/events/ext4.h> | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -14,6 +14,7 @@ | ||||||
| 
 | 
 | ||||||
| #include <linux/slab.h> | #include <linux/slab.h> | ||||||
| #include "ext4_jbd2.h" | #include "ext4_jbd2.h" | ||||||
|  | #include "ext4_extents.h" | ||||||
| 
 | 
 | ||||||
| /*
 | /*
 | ||||||
|  * The contiguous blocks details which can be |  * The contiguous blocks details which can be | ||||||
|  |  | ||||||
|  | @ -18,6 +18,7 @@ | ||||||
| #include <linux/slab.h> | #include <linux/slab.h> | ||||||
| #include "ext4_jbd2.h" | #include "ext4_jbd2.h" | ||||||
| #include "ext4.h" | #include "ext4.h" | ||||||
|  | #include "ext4_extents.h" | ||||||
| 
 | 
 | ||||||
| /**
 | /**
 | ||||||
|  * get_ext_path - Find an extent path for designated logical block number. |  * get_ext_path - Find an extent path for designated logical block number. | ||||||
|  |  | ||||||
|  | @ -27,7 +27,6 @@ | ||||||
| #include "ext4_jbd2.h" | #include "ext4_jbd2.h" | ||||||
| #include "xattr.h" | #include "xattr.h" | ||||||
| #include "acl.h" | #include "acl.h" | ||||||
| #include "ext4_extents.h" |  | ||||||
| 
 | 
 | ||||||
| static struct kmem_cache *io_page_cachep, *io_end_cachep; | static struct kmem_cache *io_page_cachep, *io_end_cachep; | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -45,12 +45,11 @@ | ||||||
| #include <linux/freezer.h> | #include <linux/freezer.h> | ||||||
| 
 | 
 | ||||||
| #include "ext4.h" | #include "ext4.h" | ||||||
| #include "ext4_extents.h" | #include "ext4_extents.h"	/* Needed for trace points definition */ | ||||||
| #include "ext4_jbd2.h" | #include "ext4_jbd2.h" | ||||||
| #include "xattr.h" | #include "xattr.h" | ||||||
| #include "acl.h" | #include "acl.h" | ||||||
| #include "mballoc.h" | #include "mballoc.h" | ||||||
| #include "ext4_extents.h" |  | ||||||
| 
 | 
 | ||||||
| #define CREATE_TRACE_POINTS | #define CREATE_TRACE_POINTS | ||||||
| #include <trace/events/ext4.h> | #include <trace/events/ext4.h> | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue
	
	 Theodore Ts'o
						Theodore Ts'o