diff options
Diffstat (limited to 'fs/gfs2/bmap.c')
-rw-r--r-- | fs/gfs2/bmap.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c index 69f846418ad5..5226c3bfbcf7 100644 --- a/fs/gfs2/bmap.c +++ b/fs/gfs2/bmap.c | |||
@@ -89,10 +89,12 @@ static int gfs2_unstuffer_page(struct gfs2_inode *ip, struct buffer_head *dibh, | |||
89 | map_bh(bh, inode->i_sb, block); | 89 | map_bh(bh, inode->i_sb, block); |
90 | 90 | ||
91 | set_buffer_uptodate(bh); | 91 | set_buffer_uptodate(bh); |
92 | if (!gfs2_is_jdata(ip)) | 92 | if (gfs2_is_jdata(ip)) |
93 | mark_buffer_dirty(bh); | ||
94 | if (!gfs2_is_writeback(ip)) | ||
95 | gfs2_trans_add_data(ip->i_gl, bh); | 93 | gfs2_trans_add_data(ip->i_gl, bh); |
94 | else { | ||
95 | mark_buffer_dirty(bh); | ||
96 | gfs2_ordered_add_inode(ip); | ||
97 | } | ||
96 | 98 | ||
97 | if (release) { | 99 | if (release) { |
98 | unlock_page(page); | 100 | unlock_page(page); |
@@ -1028,8 +1030,10 @@ static int gfs2_block_zero_range(struct inode *inode, loff_t from, | |||
1028 | err = 0; | 1030 | err = 0; |
1029 | } | 1031 | } |
1030 | 1032 | ||
1031 | if (!gfs2_is_writeback(ip)) | 1033 | if (gfs2_is_jdata(ip)) |
1032 | gfs2_trans_add_data(ip->i_gl, bh); | 1034 | gfs2_trans_add_data(ip->i_gl, bh); |
1035 | else | ||
1036 | gfs2_ordered_add_inode(ip); | ||
1033 | 1037 | ||
1034 | zero_user(page, offset, length); | 1038 | zero_user(page, offset, length); |
1035 | mark_buffer_dirty(bh); | 1039 | mark_buffer_dirty(bh); |