X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=ldiskfs%2Fkernel_patches%2Fpatches%2Fsles11sp2%2Fexport-ext4-3.0.patch;fp=ldiskfs%2Fkernel_patches%2Fpatches%2Fsles11sp2%2Fexport-ext4-3.0.patch;h=74bf0a4eea8f2cf967bb7560473fe09ed9a15931;hp=0000000000000000000000000000000000000000;hb=99bde24123dba63df0d7846007714337534f7b01;hpb=9af17f8c36e8bc04e61b7eb2df868d0fe4b6916c diff --git a/ldiskfs/kernel_patches/patches/sles11sp2/export-ext4-3.0.patch b/ldiskfs/kernel_patches/patches/sles11sp2/export-ext4-3.0.patch new file mode 100644 index 0000000..74bf0a4 --- /dev/null +++ b/ldiskfs/kernel_patches/patches/sles11sp2/export-ext4-3.0.patch @@ -0,0 +1,200 @@ +--- + fs/ext4/balloc.c | 1 + + fs/ext4/ext4.h | 2 ++ + fs/ext4/ext4_extents.h | 9 +++++++++ + fs/ext4/ext4_jbd2.c | 2 ++ + fs/ext4/extents.c | 23 ++++++++++++++++------- + fs/ext4/ialloc.c | 3 ++- + fs/ext4/inode.c | 1 + + fs/ext4/mballoc.c | 4 ++++ + fs/ext4/super.c | 9 +++++++++ + 9 files changed, 46 insertions(+), 8 deletions(-) + +--- a/fs/ext4/balloc.c ++++ b/fs/ext4/balloc.c +@@ -231,6 +231,7 @@ struct ext4_group_desc * ext4_get_group_ + *bh = sbi->s_group_desc[group_desc]; + return desc; + } ++EXPORT_SYMBOL(ext4_get_group_desc); + + static int ext4_valid_block_bitmap(struct super_block *sb, + struct ext4_group_desc *desc, +--- a/fs/ext4/ext4.h ++++ b/fs/ext4/ext4.h +@@ -1783,6 +1783,8 @@ extern struct inode * ext4_orphan_get(st + extern unsigned long ext4_count_free_inodes(struct super_block *); + extern unsigned long ext4_count_dirs(struct super_block *); + extern void ext4_check_inodes_bitmap(struct super_block *); ++extern struct buffer_head *ext4_read_inode_bitmap(struct super_block *sb, ++ ext4_group_t block_group); + extern void ext4_mark_bitmap_end(int start_bit, int end_bit, char *bitmap); + extern int ext4_init_inode_table(struct super_block *sb, + ext4_group_t group, int barrier); +--- a/fs/ext4/ext4_extents.h ++++ b/fs/ext4/ext4_extents.h +@@ -290,5 +290,14 @@ extern struct ext4_ext_path *ext4_ext_fi + 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_ext_search_right(struct inode *inode, ++ struct ext4_ext_path *path, ++ ext4_lblk_t *logical, ext4_fsblk_t *phys); ++extern int ext4_ext_search_left(struct inode *inode, ++ struct ext4_ext_path *path, ++ ext4_lblk_t *logical, ext4_fsblk_t *phys); ++extern int ext4_ext_walk_space(struct inode *inode, ext4_lblk_t block, ++ ext4_lblk_t num, ext_prepare_callback func, ++ void *cbdata); + #endif /* _EXT4_EXTENTS */ + +--- a/fs/ext4/ext4_jbd2.c ++++ b/fs/ext4/ext4_jbd2.c +@@ -19,6 +19,7 @@ int __ext4_journal_get_write_access(cons + } + return err; + } ++EXPORT_SYMBOL(__ext4_journal_get_write_access); + + /* + * The ext4 forget function must perform a revoke if we are freeing data +@@ -150,3 +151,4 @@ int __ext4_handle_dirty_super(const char + sb->s_dirt = 1; + return err; + } ++EXPORT_SYMBOL(__ext4_handle_dirty_metadata); +--- a/fs/ext4/extents.c ++++ b/fs/ext4/extents.c +@@ -1236,9 +1236,9 @@ out: + * returns 0 at @phys + * return value contains 0 (success) or error code + */ +-static int ext4_ext_search_left(struct inode *inode, +- struct ext4_ext_path *path, +- ext4_lblk_t *logical, ext4_fsblk_t *phys) ++int ext4_ext_search_left(struct inode *inode, ++ struct ext4_ext_path *path, ++ ext4_lblk_t *logical, ext4_fsblk_t *phys) + { + struct ext4_extent_idx *ix; + struct ext4_extent *ex; +@@ -1301,9 +1301,9 @@ static int ext4_ext_search_left(struct i + * returns 0 at @phys + * return value contains 0 (success) or error code + */ +-static int ext4_ext_search_right(struct inode *inode, +- struct ext4_ext_path *path, +- ext4_lblk_t *logical, ext4_fsblk_t *phys) ++int ext4_ext_search_right(struct inode *inode, ++ struct ext4_ext_path *path, ++ ext4_lblk_t *logical, ext4_fsblk_t *phys) + { + struct buffer_head *bh = NULL; + struct ext4_extent_header *eh; +@@ -1878,7 +1878,7 @@ cleanup: + return err; + } + +-static int ext4_ext_walk_space(struct inode *inode, ext4_lblk_t block, ++extern int ext4_ext_walk_space(struct inode *inode, ext4_lblk_t block, + ext4_lblk_t num, ext_prepare_callback func, + void *cbdata) + { +@@ -4397,3 +4397,12 @@ int ext4_fiemap(struct inode *inode, str + + return error; + } ++ ++EXPORT_SYMBOL(ext4_ext_search_right); ++EXPORT_SYMBOL(ext4_ext_search_left); ++EXPORT_SYMBOL(ext4_ext_insert_extent); ++EXPORT_SYMBOL(ext4_mb_new_blocks); ++EXPORT_SYMBOL(ext4_mark_inode_dirty); ++EXPORT_SYMBOL(ext4_ext_walk_space); ++EXPORT_SYMBOL(ext4_ext_find_extent); ++EXPORT_SYMBOL(ext4_ext_drop_refs); +--- a/fs/ext4/ialloc.c ++++ b/fs/ext4/ialloc.c +@@ -98,7 +98,7 @@ static unsigned ext4_init_inode_bitmap(s + * + * Return buffer_head of bitmap on success or NULL. + */ +-static struct buffer_head * ++struct buffer_head * + ext4_read_inode_bitmap(struct super_block *sb, ext4_group_t block_group) + { + struct ext4_group_desc *desc; +@@ -163,6 +163,7 @@ ext4_read_inode_bitmap(struct super_bloc + } + return bh; + } ++EXPORT_SYMBOL(ext4_read_inode_bitmap); + + /* + * NOTE! When we get the inode, we're the only people +--- a/fs/ext4/inode.c ++++ b/fs/ext4/inode.c +@@ -5096,6 +5096,7 @@ bad_inode: + iget_failed(inode); + return ERR_PTR(ret); + } ++EXPORT_SYMBOL(ext4_iget); + + static int ext4_inode_blocks_set(handle_t *handle, + struct ext4_inode *raw_inode, +--- a/fs/ext4/mballoc.c ++++ b/fs/ext4/mballoc.c +@@ -3852,6 +3852,7 @@ repeat: + call_rcu(&(pa)->u.pa_rcu, ext4_mb_pa_callback); + } + } ++EXPORT_SYMBOL(ext4_discard_preallocations); + + #ifdef CONFIG_EXT4_DEBUG + static void ext4_mb_show_ac(struct ext4_allocation_context *ac) +@@ -4972,3 +4973,6 @@ int ext4_trim_fs(struct super_block *sb, + + return ret; + } ++ ++EXPORT_SYMBOL(ext4_free_blocks); ++ +--- a/fs/ext4/super.c ++++ b/fs/ext4/super.c +@@ -194,6 +194,7 @@ __u32 ext4_itable_unused_count(struct su + (EXT4_DESC_SIZE(sb) >= EXT4_MIN_DESC_SIZE_64BIT ? + (__u32)le16_to_cpu(bg->bg_itable_unused_hi) << 16 : 0); + } ++EXPORT_SYMBOL(ext4_itable_unused_count); + + void ext4_block_bitmap_set(struct super_block *sb, + struct ext4_group_desc *bg, ext4_fsblk_t blk) +@@ -378,6 +379,7 @@ void ext4_journal_abort_handle(const cha + + jbd2_journal_abort_handle(handle); + } ++EXPORT_SYMBOL(ext4_journal_abort_handle); + + static void __save_error_info(struct super_block *sb, const char *func, + unsigned int line) +@@ -4272,6 +4274,7 @@ int ext4_force_commit(struct super_block + + return ret; + } ++EXPORT_SYMBOL(ext4_force_commit); + + static void ext4_write_super(struct super_block *sb) + { +@@ -5208,6 +5211,12 @@ static void __exit ext4_exit_fs(void) + ext4_exit_pageio(); + } + ++EXPORT_SYMBOL(ext4_xattr_get); ++EXPORT_SYMBOL(ext4_xattr_set_handle); ++EXPORT_SYMBOL(ext4_bread); ++EXPORT_SYMBOL(ext4_journal_start_sb); ++EXPORT_SYMBOL(__ext4_journal_stop); ++ + MODULE_AUTHOR("Remy Card, Stephen Tweedie, Andrew Morton, Andreas Dilger, Theodore Ts'o and others"); + MODULE_DESCRIPTION("Fourth Extended Filesystem"); + MODULE_LICENSE("GPL");