Skip to content

Commit 4a092d7

Browse files
committed
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 <[email protected]> Reported-by: Wei Yongjun <[email protected]> Signed-off-by: "Theodore Ts'o" <[email protected]>
1 parent 766f44d commit 4a092d7

File tree

8 files changed

+37
-30
lines changed

8 files changed

+37
-30
lines changed

fs/ext4/ext4.h

Lines changed: 32 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,16 @@
5757
#define ext4_debug(fmt, ...) no_printk(fmt, ##__VA_ARGS__)
5858
#endif
5959

60+
/*
61+
* Turn on EXT_DEBUG to get lots of info about extents operations.
62+
*/
63+
#define EXT_DEBUG__
64+
#ifdef EXT_DEBUG
65+
#define ext_debug(fmt, ...) printk(fmt, ##__VA_ARGS__)
66+
#else
67+
#define ext_debug(fmt, ...) no_printk(fmt, ##__VA_ARGS__)
68+
#endif
69+
6070
#define EXT4_ERROR_INODE(inode, fmt, a...) \
6171
ext4_error_inode((inode), __func__, __LINE__, 0, (fmt), ## a)
6272

@@ -2399,6 +2409,9 @@ extern int ext4_check_blockref(const char *, unsigned int,
23992409
struct inode *, __le32 *, unsigned int);
24002410

24012411
/* extents.c */
2412+
struct ext4_ext_path;
2413+
struct ext4_extent;
2414+
24022415
extern int ext4_ext_tree_init(handle_t *handle, struct inode *);
24032416
extern int ext4_ext_writepage_trans_blocks(struct inode *, int);
24042417
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,
24162429
ssize_t len);
24172430
extern int ext4_map_blocks(handle_t *handle, struct inode *inode,
24182431
struct ext4_map_blocks *map, int flags);
2432+
extern int ext4_ext_calc_metadata_amount(struct inode *inode,
2433+
ext4_lblk_t lblocks);
2434+
extern int ext4_extent_tree_init(handle_t *, struct inode *);
2435+
extern int ext4_ext_calc_credits_for_single_extent(struct inode *inode,
2436+
int num,
2437+
struct ext4_ext_path *path);
2438+
extern int ext4_can_extents_be_merged(struct inode *inode,
2439+
struct ext4_extent *ex1,
2440+
struct ext4_extent *ex2);
2441+
extern int ext4_ext_insert_extent(handle_t *, struct inode *,
2442+
struct ext4_ext_path *,
2443+
struct ext4_extent *, int);
2444+
extern struct ext4_ext_path *ext4_ext_find_extent(struct inode *, ext4_lblk_t,
2445+
struct ext4_ext_path *);
2446+
extern void ext4_ext_drop_refs(struct ext4_ext_path *);
2447+
extern int ext4_ext_check_inode(struct inode *inode);
2448+
extern int ext4_find_delalloc_cluster(struct inode *inode, ext4_lblk_t lblk);
24192449
extern int ext4_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
24202450
__u64 start, __u64 len);
2451+
2452+
24212453
/* move_extent.c */
24222454
extern int ext4_move_extents(struct file *o_filp, struct file *d_filp,
24232455
__u64 start_orig, __u64 start_donor,
@@ -2505,6 +2537,4 @@ extern void ext4_resize_end(struct super_block *sb);
25052537

25062538
#endif /* __KERNEL__ */
25072539

2508-
#include "ext4_extents.h"
2509-
25102540
#endif /* _EXT4_H */

fs/ext4/ext4_extents.h

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -42,16 +42,6 @@
4242
*/
4343
#define CHECK_BINSEARCH__
4444

45-
/*
46-
* Turn on EXT_DEBUG to get lots of info about extents operations.
47-
*/
48-
#define EXT_DEBUG__
49-
#ifdef EXT_DEBUG
50-
#define ext_debug(fmt, ...) printk(fmt, ##__VA_ARGS__)
51-
#else
52-
#define ext_debug(fmt, ...) no_printk(fmt, ##__VA_ARGS__)
53-
#endif
54-
5545
/*
5646
* If EXT_STATS is defined then stats numbers are collected.
5747
* These number will be displayed at umount time.
@@ -286,20 +276,5 @@ static inline void ext4_idx_store_pblock(struct ext4_extent_idx *ix,
286276
0xffff);
287277
}
288278

289-
extern int ext4_ext_calc_metadata_amount(struct inode *inode,
290-
ext4_lblk_t lblocks);
291-
extern int ext4_extent_tree_init(handle_t *, struct inode *);
292-
extern int ext4_ext_calc_credits_for_single_extent(struct inode *inode,
293-
int num,
294-
struct ext4_ext_path *path);
295-
extern int ext4_can_extents_be_merged(struct inode *inode,
296-
struct ext4_extent *ex1,
297-
struct ext4_extent *ex2);
298-
extern int ext4_ext_insert_extent(handle_t *, struct inode *, struct ext4_ext_path *, struct ext4_extent *, int);
299-
extern struct ext4_ext_path *ext4_ext_find_extent(struct inode *, ext4_lblk_t,
300-
struct ext4_ext_path *);
301-
extern void ext4_ext_drop_refs(struct ext4_ext_path *);
302-
extern int ext4_ext_check_inode(struct inode *inode);
303-
extern int ext4_find_delalloc_cluster(struct inode *inode, ext4_lblk_t lblk);
304279
#endif /* _EXT4_EXTENTS */
305280

fs/ext4/extents.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,7 @@
4141
#include <asm/uaccess.h>
4242
#include <linux/fiemap.h>
4343
#include "ext4_jbd2.h"
44+
#include "ext4_extents.h"
4445

4546
#include <trace/events/ext4.h>
4647

fs/ext4/indirect.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222

2323
#include "ext4_jbd2.h"
2424
#include "truncate.h"
25+
#include "ext4_extents.h" /* Needed for EXT_MAX_BLOCKS */
2526

2627
#include <trace/events/ext4.h>
2728

fs/ext4/migrate.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414

1515
#include <linux/slab.h>
1616
#include "ext4_jbd2.h"
17+
#include "ext4_extents.h"
1718

1819
/*
1920
* The contiguous blocks details which can be

fs/ext4/move_extent.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include <linux/slab.h>
1919
#include "ext4_jbd2.h"
2020
#include "ext4.h"
21+
#include "ext4_extents.h"
2122

2223
/**
2324
* get_ext_path - Find an extent path for designated logical block number.

fs/ext4/page-io.c

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
#include "ext4_jbd2.h"
2828
#include "xattr.h"
2929
#include "acl.h"
30-
#include "ext4_extents.h"
3130

3231
static struct kmem_cache *io_page_cachep, *io_end_cachep;
3332

fs/ext4/super.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,11 @@
4545
#include <linux/freezer.h>
4646

4747
#include "ext4.h"
48-
#include "ext4_extents.h"
48+
#include "ext4_extents.h" /* Needed for trace points definition */
4949
#include "ext4_jbd2.h"
5050
#include "xattr.h"
5151
#include "acl.h"
5252
#include "mballoc.h"
53-
#include "ext4_extents.h"
5453

5554
#define CREATE_TRACE_POINTS
5655
#include <trace/events/ext4.h>

0 commit comments

Comments
 (0)