mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 10:40:15 +02:00 
			
		
		
		
	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