aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTheodore Ts'o <tytso@mit.edu>2012-11-28 13:03:30 -0500
committerTheodore Ts'o <tytso@mit.edu>2012-11-28 13:03:30 -0500
commit4a092d737955301da22b9d5e07f5036da821a932 (patch)
treee0532dda14a20822c61448a395cc60b6803b0f46
parent766f44d46a726cb59f52a75c5c87425a10c4bade (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.h34
-rw-r--r--fs/ext4/ext4_extents.h25
-rw-r--r--fs/ext4/extents.c1
-rw-r--r--fs/ext4/indirect.c1
-rw-r--r--fs/ext4/migrate.c1
-rw-r--r--fs/ext4/move_extent.c1
-rw-r--r--fs/ext4/page-io.c1
-rw-r--r--fs/ext4/super.c3
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 */
2412struct ext4_ext_path;
2413struct ext4_extent;
2414
2402extern int ext4_ext_tree_init(handle_t *handle, struct inode *); 2415extern int ext4_ext_tree_init(handle_t *handle, struct inode *);
2403extern int ext4_ext_writepage_trans_blocks(struct inode *, int); 2416extern int ext4_ext_writepage_trans_blocks(struct inode *, int);
2404extern int ext4_ext_index_trans_blocks(struct inode *inode, int nrblocks, 2417extern 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);
2417extern int ext4_map_blocks(handle_t *handle, struct inode *inode, 2430extern 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);
2432extern int ext4_ext_calc_metadata_amount(struct inode *inode,
2433 ext4_lblk_t lblocks);
2434extern int ext4_extent_tree_init(handle_t *, struct inode *);
2435extern int ext4_ext_calc_credits_for_single_extent(struct inode *inode,
2436 int num,
2437 struct ext4_ext_path *path);
2438extern int ext4_can_extents_be_merged(struct inode *inode,
2439 struct ext4_extent *ex1,
2440 struct ext4_extent *ex2);
2441extern int ext4_ext_insert_extent(handle_t *, struct inode *,
2442 struct ext4_ext_path *,
2443 struct ext4_extent *, int);
2444extern struct ext4_ext_path *ext4_ext_find_extent(struct inode *, ext4_lblk_t,
2445 struct ext4_ext_path *);
2446extern void ext4_ext_drop_refs(struct ext4_ext_path *);
2447extern int ext4_ext_check_inode(struct inode *inode);
2448extern int ext4_find_delalloc_cluster(struct inode *inode, ext4_lblk_t lblk);
2419extern int ext4_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, 2449extern 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 */
2422extern int ext4_move_extents(struct file *o_filp, struct file *d_filp, 2454extern 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
289extern int ext4_ext_calc_metadata_amount(struct inode *inode,
290 ext4_lblk_t lblocks);
291extern int ext4_extent_tree_init(handle_t *, struct inode *);
292extern int ext4_ext_calc_credits_for_single_extent(struct inode *inode,
293 int num,
294 struct ext4_ext_path *path);
295extern int ext4_can_extents_be_merged(struct inode *inode,
296 struct ext4_extent *ex1,
297 struct ext4_extent *ex2);
298extern int ext4_ext_insert_extent(handle_t *, struct inode *, struct ext4_ext_path *, struct ext4_extent *, int);
299extern struct ext4_ext_path *ext4_ext_find_extent(struct inode *, ext4_lblk_t,
300 struct ext4_ext_path *);
301extern void ext4_ext_drop_refs(struct ext4_ext_path *);
302extern int ext4_ext_check_inode(struct inode *inode);
303extern 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
32static struct kmem_cache *io_page_cachep, *io_end_cachep; 31static 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>