diff options
author | Theodore Ts'o <tytso@mit.edu> | 2012-11-28 13:03:30 -0500 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2012-11-28 13:03:30 -0500 |
commit | 4a092d737955301da22b9d5e07f5036da821a932 (patch) | |
tree | e0532dda14a20822c61448a395cc60b6803b0f46 | |
parent | 766f44d46a726cb59f52a75c5c87425a10c4bade (diff) |
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>
-rw-r--r-- | fs/ext4/ext4.h | 34 | ||||
-rw-r--r-- | fs/ext4/ext4_extents.h | 25 | ||||
-rw-r--r-- | fs/ext4/extents.c | 1 | ||||
-rw-r--r-- | fs/ext4/indirect.c | 1 | ||||
-rw-r--r-- | fs/ext4/migrate.c | 1 | ||||
-rw-r--r-- | fs/ext4/move_extent.c | 1 | ||||
-rw-r--r-- | fs/ext4/page-io.c | 1 | ||||
-rw-r--r-- | fs/ext4/super.c | 3 |
8 files changed, 37 insertions, 30 deletions
diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index 246e38f3915a..2e9ffa9100bb 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h | |||
@@ -57,6 +57,16 @@ | |||
57 | #define ext4_debug(fmt, ...) no_printk(fmt, ##__VA_ARGS__) | 57 | #define ext4_debug(fmt, ...) no_printk(fmt, ##__VA_ARGS__) |
58 | #endif | 58 | #endif |
59 | 59 | ||
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 | |||
60 | #define EXT4_ERROR_INODE(inode, fmt, a...) \ | 70 | #define EXT4_ERROR_INODE(inode, fmt, a...) \ |
61 | ext4_error_inode((inode), __func__, __LINE__, 0, (fmt), ## a) | 71 | ext4_error_inode((inode), __func__, __LINE__, 0, (fmt), ## a) |
62 | 72 | ||
@@ -2399,6 +2409,9 @@ extern int ext4_check_blockref(const char *, unsigned int, | |||
2399 | struct inode *, __le32 *, unsigned int); | 2409 | struct inode *, __le32 *, unsigned int); |
2400 | 2410 | ||
2401 | /* extents.c */ | 2411 | /* extents.c */ |
2412 | struct ext4_ext_path; | ||
2413 | struct ext4_extent; | ||
2414 | |||
2402 | extern int ext4_ext_tree_init(handle_t *handle, struct inode *); | 2415 | extern int ext4_ext_tree_init(handle_t *handle, struct inode *); |
2403 | extern int ext4_ext_writepage_trans_blocks(struct inode *, int); | 2416 | extern int ext4_ext_writepage_trans_blocks(struct inode *, int); |
2404 | extern int ext4_ext_index_trans_blocks(struct inode *inode, int nrblocks, | 2417 | 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, | |||
2416 | ssize_t len); | 2429 | ssize_t len); |
2417 | extern int ext4_map_blocks(handle_t *handle, struct inode *inode, | 2430 | extern int ext4_map_blocks(handle_t *handle, struct inode *inode, |
2418 | struct ext4_map_blocks *map, int flags); | 2431 | 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); | ||
2419 | extern int ext4_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, | 2449 | extern int ext4_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, |
2420 | __u64 start, __u64 len); | 2450 | __u64 start, __u64 len); |
2451 | |||
2452 | |||
2421 | /* move_extent.c */ | 2453 | /* move_extent.c */ |
2422 | extern int ext4_move_extents(struct file *o_filp, struct file *d_filp, | 2454 | extern int ext4_move_extents(struct file *o_filp, struct file *d_filp, |
2423 | __u64 start_orig, __u64 start_donor, | 2455 | __u64 start_orig, __u64 start_donor, |
@@ -2505,6 +2537,4 @@ extern void ext4_resize_end(struct super_block *sb); | |||
2505 | 2537 | ||
2506 | #endif /* __KERNEL__ */ | 2538 | #endif /* __KERNEL__ */ |
2507 | 2539 | ||
2508 | #include "ext4_extents.h" | ||
2509 | |||
2510 | #endif /* _EXT4_H */ | 2540 | #endif /* _EXT4_H */ |
diff --git a/fs/ext4/ext4_extents.h b/fs/ext4/ext4_extents.h index 173b6c545323..487fda12bc00 100644 --- a/fs/ext4/ext4_extents.h +++ b/fs/ext4/ext4_extents.h | |||
@@ -43,16 +43,6 @@ | |||
43 | #define CHECK_BINSEARCH__ | 43 | #define CHECK_BINSEARCH__ |
44 | 44 | ||
45 | /* | 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 | |||
55 | /* | ||
56 | * If EXT_STATS is defined then stats numbers are collected. | 46 | * If EXT_STATS is defined then stats numbers are collected. |
57 | * These number will be displayed at umount time. | 47 | * These number will be displayed at umount time. |
58 | */ | 48 | */ |
@@ -286,20 +276,5 @@ static inline void ext4_idx_store_pblock(struct ext4_extent_idx *ix, | |||
286 | 0xffff); | 276 | 0xffff); |
287 | } | 277 | } |
288 | 278 | ||
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); | ||
304 | #endif /* _EXT4_EXTENTS */ | 279 | #endif /* _EXT4_EXTENTS */ |
305 | 280 | ||
diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index 56251466750c..1dc19a7b449f 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c | |||
@@ -41,6 +41,7 @@ | |||
41 | #include <asm/uaccess.h> | 41 | #include <asm/uaccess.h> |
42 | #include <linux/fiemap.h> | 42 | #include <linux/fiemap.h> |
43 | #include "ext4_jbd2.h" | 43 | #include "ext4_jbd2.h" |
44 | #include "ext4_extents.h" | ||
44 | 45 | ||
45 | #include <trace/events/ext4.h> | 46 | #include <trace/events/ext4.h> |
46 | 47 | ||
diff --git a/fs/ext4/indirect.c b/fs/ext4/indirect.c index f6663c3a946d..20862f96e8ae 100644 --- a/fs/ext4/indirect.c +++ b/fs/ext4/indirect.c | |||
@@ -22,6 +22,7 @@ | |||
22 | 22 | ||
23 | #include "ext4_jbd2.h" | 23 | #include "ext4_jbd2.h" |
24 | #include "truncate.h" | 24 | #include "truncate.h" |
25 | #include "ext4_extents.h" /* Needed for EXT_MAX_BLOCKS */ | ||
25 | 26 | ||
26 | #include <trace/events/ext4.h> | 27 | #include <trace/events/ext4.h> |
27 | 28 | ||
diff --git a/fs/ext4/migrate.c b/fs/ext4/migrate.c index f1bb32ec0169..db8226d595fa 100644 --- a/fs/ext4/migrate.c +++ b/fs/ext4/migrate.c | |||
@@ -14,6 +14,7 @@ | |||
14 | 14 | ||
15 | #include <linux/slab.h> | 15 | #include <linux/slab.h> |
16 | #include "ext4_jbd2.h" | 16 | #include "ext4_jbd2.h" |
17 | #include "ext4_extents.h" | ||
17 | 18 | ||
18 | /* | 19 | /* |
19 | * The contiguous blocks details which can be | 20 | * The contiguous blocks details which can be |
diff --git a/fs/ext4/move_extent.c b/fs/ext4/move_extent.c index 292daeeed455..d9cc5ee42f53 100644 --- a/fs/ext4/move_extent.c +++ b/fs/ext4/move_extent.c | |||
@@ -18,6 +18,7 @@ | |||
18 | #include <linux/slab.h> | 18 | #include <linux/slab.h> |
19 | #include "ext4_jbd2.h" | 19 | #include "ext4_jbd2.h" |
20 | #include "ext4.h" | 20 | #include "ext4.h" |
21 | #include "ext4_extents.h" | ||
21 | 22 | ||
22 | /** | 23 | /** |
23 | * get_ext_path - Find an extent path for designated logical block number. | 24 | * get_ext_path - Find an extent path for designated logical block number. |
diff --git a/fs/ext4/page-io.c b/fs/ext4/page-io.c index 0fd16e653ebd..0016fbca2a40 100644 --- a/fs/ext4/page-io.c +++ b/fs/ext4/page-io.c | |||
@@ -27,7 +27,6 @@ | |||
27 | #include "ext4_jbd2.h" | 27 | #include "ext4_jbd2.h" |
28 | #include "xattr.h" | 28 | #include "xattr.h" |
29 | #include "acl.h" | 29 | #include "acl.h" |
30 | #include "ext4_extents.h" | ||
31 | 30 | ||
32 | static struct kmem_cache *io_page_cachep, *io_end_cachep; | 31 | static struct kmem_cache *io_page_cachep, *io_end_cachep; |
33 | 32 | ||
diff --git a/fs/ext4/super.c b/fs/ext4/super.c index 66a4e20424cf..856206f255aa 100644 --- a/fs/ext4/super.c +++ b/fs/ext4/super.c | |||
@@ -45,12 +45,11 @@ | |||
45 | #include <linux/freezer.h> | 45 | #include <linux/freezer.h> |
46 | 46 | ||
47 | #include "ext4.h" | 47 | #include "ext4.h" |
48 | #include "ext4_extents.h" | 48 | #include "ext4_extents.h" /* Needed for trace points definition */ |
49 | #include "ext4_jbd2.h" | 49 | #include "ext4_jbd2.h" |
50 | #include "xattr.h" | 50 | #include "xattr.h" |
51 | #include "acl.h" | 51 | #include "acl.h" |
52 | #include "mballoc.h" | 52 | #include "mballoc.h" |
53 | #include "ext4_extents.h" | ||
54 | 53 | ||
55 | #define CREATE_TRACE_POINTS | 54 | #define CREATE_TRACE_POINTS |
56 | #include <trace/events/ext4.h> | 55 | #include <trace/events/ext4.h> |