Building with GCC 4.2, I get the following error:
CC [M] fs/ext4/extents.o
fs/ext4/extents.c:2166: error: __ksymtab_ext4_ext_find_goal causes a section type conflict
fs/ext4/extents.c:2163: error: __ksymtab_ext4_ext_invalidate_cache causes a section type conflict
This is because ext4_ext_find_goal and ext4_ext_invalidate_cache are
declared static but also exported.
Signed-off-by: Martin Michlmayr <[email protected]>
--- a/fs/ext4/extents.c
+++ b/fs/ext4/extents.c
@@ -172,7 +172,7 @@ static int ext4_ext_dirty(handle_t *handle, struct inode *inode,
return err;
}
-static ext4_fsblk_t ext4_ext_find_goal(struct inode *inode,
+ext4_fsblk_t ext4_ext_find_goal(struct inode *inode,
struct ext4_ext_path *path,
ext4_fsblk_t block)
{
--- a/include/linux/ext4_fs_extents.h
+++ b/include/linux/ext4_fs_extents.h
@@ -182,7 +182,7 @@ static inline void ext4_ext_tree_changed(struct inode *inode)
EXT4_I(inode)->i_ext_generation++;
}
-static inline void
+inline void
ext4_ext_invalidate_cache(struct inode *inode)
{
EXT4_I(inode)->i_cached_extent.ec_type = EXT4_EXT_CACHE_NO;
--
Martin Michlmayr
http://www.cyrius.com/
On Tue, 2007-05-15 at 19:15 +0200, Martin Michlmayr wrote:
> Building with GCC 4.2, I get the following error:
>
> CC [M] fs/ext4/extents.o
> fs/ext4/extents.c:2166: error: __ksymtab_ext4_ext_find_goal causes a section type conflict
> fs/ext4/extents.c:2163: error: __ksymtab_ext4_ext_invalidate_cache causes a section type conflict
>
> This is because ext4_ext_find_goal and ext4_ext_invalidate_cache are
> declared static but also exported.
Hmm.. Why are these exported ?
Looking at the code
EXPORT_SYMBOL(ext4_ext_invalidate_cache);
EXPORT_SYMBOL(ext4_ext_insert_extent);
EXPORT_SYMBOL(ext4_ext_walk_space);
EXPORT_SYMBOL(ext4_ext_find_goal);
EXPORT_SYMBOL(ext4_ext_calc_credits_for_insert);
Mingming ? Why are we exporting these ?
Thanks,
Badari
On Tue, 2007-05-15 at 11:09 -0700, Badari Pulavarty wrote:
> On Tue, 2007-05-15 at 19:15 +0200, Martin Michlmayr wrote:
> > Building with GCC 4.2, I get the following error:
> >
> > CC [M] fs/ext4/extents.o
> > fs/ext4/extents.c:2166: error: __ksymtab_ext4_ext_find_goal causes a section type conflict
> > fs/ext4/extents.c:2163: error: __ksymtab_ext4_ext_invalidate_cache causes a section type conflict
> >
> > This is because ext4_ext_find_goal and ext4_ext_invalidate_cache are
> > declared static but also exported.
>
> Hmm.. Why are these exported ?
> Looking at the code
>
>
> EXPORT_SYMBOL(ext4_ext_invalidate_cache);
> EXPORT_SYMBOL(ext4_ext_insert_extent);
> EXPORT_SYMBOL(ext4_ext_walk_space);
> EXPORT_SYMBOL(ext4_ext_find_goal);
> EXPORT_SYMBOL(ext4_ext_calc_credits_for_insert);
>
there is one more
EXPORT_SYMBOL(ext4_mark_inode_dirty);
And with fallocate() patch,
EXPORT_SYMBOL(ext4_fallocate);
> Mingming ? Why are we exporting these ?
>
Don't know. They should all used by ext4 only. Alex, can we remove these
exported symbols?
Mingming
Mingming Cao wrote:
> Don't know. They should all used by ext4 only. Alex, can we remove these
> exported symbols?
yes, I think so.
thanks, Alex
Mingming Cao wrote:
> Don't know. They should all used by ext4 only. Alex, can we remove these
> exported symbols?
yes, I think so.
thanks, Alex
These symbols are used in ext4 only.
Acked-By: Ales Tomas <[email protected]>
Signed-Off-By: Mingming Cao <[email protected]>
Index: linux-2.6.21.1/fs/ext4/extents.c
===================================================================
--- linux-2.6.21.1.orig/fs/ext4/extents.c 2007-05-15 11:52:45.000000000 -0700
+++ linux-2.6.21.1/fs/ext4/extents.c 2007-05-15 11:59:13.000000000 -0700
@@ -2550,12 +2550,3 @@
return num;
}
-
-EXPORT_SYMBOL(ext4_mark_inode_dirty);
-EXPORT_SYMBOL(ext4_ext_invalidate_cache);
-EXPORT_SYMBOL(ext4_ext_insert_extent);
-EXPORT_SYMBOL(ext4_ext_walk_space);
-EXPORT_SYMBOL(ext4_ext_find_goal);
-EXPORT_SYMBOL(ext4_ext_calc_credits_for_insert);
-EXPORT_SYMBOL(ext4_fallocate);
-