1 Index: linux-3.12.39-47.1/fs/ext4/ext4.h
2 ===================================================================
3 --- linux-3.12.39-47.1.orig/fs/ext4/ext4.h
4 +++ linux-3.12.39-47.1/fs/ext4/ext4.h
5 @@ -1431,6 +1431,8 @@ static inline void ext4_clear_state_flag
7 #define NEXT_ORPHAN(inode) EXT4_I(inode)->i_dtime
9 +#define JOURNAL_START_HAS_3ARGS 1
12 * Codes for operating systems
14 @@ -2694,6 +2696,11 @@ struct ext4_extent;
16 extern int ext4_ext_tree_init(handle_t *handle, struct inode *);
17 extern int ext4_ext_writepage_trans_blocks(struct inode *, int);
18 +extern struct buffer_head *ext4_read_inode_bitmap(struct super_block *sb,
19 + ext4_group_t block_group);
20 +extern struct buffer_head *ext4_append(handle_t *handle,
21 + struct inode *inode,
22 + ext4_lblk_t *block);
23 extern int ext4_ext_index_trans_blocks(struct inode *inode, int extents);
24 extern int ext4_ext_map_blocks(handle_t *handle, struct inode *inode,
25 struct ext4_map_blocks *map, int flags);
26 Index: linux-3.12.39-47.1/fs/ext4/namei.c
27 ===================================================================
28 --- linux-3.12.39-47.1.orig/fs/ext4/namei.c
29 +++ linux-3.12.39-47.1/fs/ext4/namei.c
31 #define NAMEI_RA_BLOCKS 4
32 #define NAMEI_RA_SIZE (NAMEI_RA_CHUNKS * NAMEI_RA_BLOCKS)
34 -static struct buffer_head *ext4_append(handle_t *handle,
35 +struct buffer_head *ext4_append(handle_t *handle,
39 @@ -71,6 +2200,7 @@ out:
41 inode->i_size += inode->i_sb->s_blocksize;
42 EXT4_I(inode)->i_disksize = inode->i_size;
43 + BUFFER_TRACE(bh, "get_write_access");
44 err = ext4_journal_get_write_access(handle, bh);
47 @@ -154,6 +154,7 @@ static struct buffer_head *__ext4_read_d
51 +EXPORT_SYMBOL(ext4_append);
54 #define assert(test) J_ASSERT(test)
55 @@ -2199,7 +2200,7 @@ out:
56 * DIR_NLINK feature is set if 1) nlinks > EXT4_LINK_MAX or 2) nlinks == 2,
57 * since this indicates that nlinks count was previously 1.
59 -static void ext4_inc_count(handle_t *handle, struct inode *inode)
60 +void ext4_inc_count(handle_t *handle, struct inode *inode)
63 if (is_dx(inode) && inode->i_nlink > 1) {
64 @@ -2211,16 +2212,18 @@ static void ext4_inc_count(handle_t *han
68 +EXPORT_SYMBOL(ext4_inc_count);
71 * If a directory had nlink == 1, then we should let it be 1. This indicates
72 * directory has >EXT4_LINK_MAX subdirs.
74 -static void ext4_dec_count(handle_t *handle, struct inode *inode)
75 +void ext4_dec_count(handle_t *handle, struct inode *inode)
77 if (!S_ISDIR(inode->i_mode) || inode->i_nlink > 2)
80 +EXPORT_SYMBOL(ext4_dec_count);
83 static int ext4_add_nondir(handle_t *handle,
84 Index: linux-3.12.39-47.1/fs/ext4/ialloc.c
85 ===================================================================
86 --- linux-3.12.39-47.1.orig/fs/ext4/ialloc.c
87 +++ linux-3.12.39-47.1/fs/ext4/ialloc.c
88 @@ -109,7 +109,7 @@ void ext4_end_bitmap_read(struct buffer_
90 * Return buffer_head of bitmap on success or NULL.
92 -static struct buffer_head *
94 ext4_read_inode_bitmap(struct super_block *sb, ext4_group_t block_group)
96 struct ext4_group_desc *desc;
97 @@ -192,6 +192,7 @@ verify:
98 set_buffer_verified(bh);
101 +EXPORT_SYMBOL(ext4_read_inode_bitmap);
104 * NOTE! When we get the inode, we're the only people
105 Index: linux-3.12.39-47.1/fs/ext4/inode.c
106 ===================================================================
107 --- linux-3.12.39-47.1.orig/fs/ext4/inode.c
108 +++ linux-3.12.39-47.1/fs/ext4/inode.c
109 @@ -5186,3 +5186,17 @@ out:
110 sb_end_pagefault(inode->i_sb);
113 +EXPORT_SYMBOL(ext4_map_blocks);
114 +EXPORT_SYMBOL(ext4_truncate);
115 +EXPORT_SYMBOL(ext4_iget);
116 +EXPORT_SYMBOL(ext4_bread);
117 +EXPORT_SYMBOL(ext4_itable_unused_count);
118 +EXPORT_SYMBOL(ext4_force_commit);
119 +EXPORT_SYMBOL(ext4_mark_inode_dirty);
120 +EXPORT_SYMBOL(ext4_get_group_desc);
121 +EXPORT_SYMBOL(__ext4_journal_get_write_access);
122 +EXPORT_SYMBOL(__ext4_journal_start_sb);
123 +EXPORT_SYMBOL(__ext4_journal_stop);
124 +EXPORT_SYMBOL(__ext4_handle_dirty_metadata);
125 +EXPORT_SYMBOL(__ext4_std_error);
126 +EXPORT_SYMBOL(ext4fs_dirhash);
127 Index: linux-3.12.39-47.1/fs/ext4/mballoc.c
128 ===================================================================
129 --- linux-3.12.39-47.1.orig/fs/ext4/mballoc.c
130 +++ linux-3.12.39-47.1/fs/ext4/mballoc.c
131 @@ -759,6 +759,9 @@ void ext4_mb_generate_buddy(struct super
132 * corrupt and update bb_free using bitmap value
135 + if (!EXT4_MB_GRP_BBITMAP_CORRUPT(grp))
136 + percpu_counter_sub(&sbi->s_freeclusters_counter,
138 set_bit(EXT4_GROUP_INFO_BBITMAP_CORRUPT_BIT, &grp->bb_state);
140 mb_set_largest_free_order(sb, grp);
141 Index: linux-3.12.39-47.1/fs/ext4/xattr.c
142 ===================================================================
143 --- linux-3.12.39-47.1.orig/fs/ext4/xattr.c
144 +++ linux-3.12.39-47.1/fs/ext4/xattr.c
145 @@ -541,6 +541,7 @@ ext4_xattr_release_block(handle_t *handl
148 ce = mb_cache_entry_get(ext4_xattr_cache, bh->b_bdev, bh->b_blocknr);
149 + BUFFER_TRACE(bh, "get_write_access");
150 error = ext4_journal_get_write_access(handle, bh);
153 @@ -781,6 +782,7 @@ ext4_xattr_block_set(handle_t *handle, s
155 ce = mb_cache_entry_get(ext4_xattr_cache, bs->bh->b_bdev,
157 + BUFFER_TRACE(bs->bh, "get_write_access");
158 error = ext4_journal_get_write_access(handle, bs->bh);