diff options
Diffstat (limited to 'fs/gfs2/bmap.c')
-rw-r--r-- | fs/gfs2/bmap.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c index 30d718b3438f..651e5320bb4f 100644 --- a/fs/gfs2/bmap.c +++ b/fs/gfs2/bmap.c | |||
@@ -138,7 +138,7 @@ int gfs2_unstuff_dinode(struct gfs2_inode *ip, struct page *page) | |||
138 | 138 | ||
139 | if (isdir) { | 139 | if (isdir) { |
140 | block = gfs2_alloc_meta(ip); | 140 | block = gfs2_alloc_meta(ip); |
141 | 141 | gfs2_trans_add_unrevoke(GFS2_SB(&ip->i_inode), block, 1); | |
142 | error = gfs2_dir_get_new_buffer(ip, block, &bh); | 142 | error = gfs2_dir_get_new_buffer(ip, block, &bh); |
143 | if (error) | 143 | if (error) |
144 | goto out_brelse; | 144 | goto out_brelse; |
@@ -206,6 +206,7 @@ static int build_height(struct inode *inode, struct metapath *mp, unsigned heigh | |||
206 | 206 | ||
207 | for(n = 0; n < new_height; n++) { | 207 | for(n = 0; n < new_height; n++) { |
208 | bn = gfs2_alloc_meta(ip); | 208 | bn = gfs2_alloc_meta(ip); |
209 | gfs2_trans_add_unrevoke(GFS2_SB(inode), bn, 1); | ||
209 | mp->mp_bh[n] = gfs2_meta_new(ip->i_gl, bn); | 210 | mp->mp_bh[n] = gfs2_meta_new(ip->i_gl, bn); |
210 | gfs2_trans_add_bh(ip->i_gl, mp->mp_bh[n], 1); | 211 | gfs2_trans_add_bh(ip->i_gl, mp->mp_bh[n], 1); |
211 | } | 212 | } |
@@ -370,8 +371,10 @@ static int lookup_block(struct gfs2_inode *ip, unsigned int height, | |||
370 | 371 | ||
371 | if (height == ip->i_height - 1 && !gfs2_is_dir(ip)) | 372 | if (height == ip->i_height - 1 && !gfs2_is_dir(ip)) |
372 | *block = gfs2_alloc_data(ip); | 373 | *block = gfs2_alloc_data(ip); |
373 | else | 374 | else { |
374 | *block = gfs2_alloc_meta(ip); | 375 | *block = gfs2_alloc_meta(ip); |
376 | gfs2_trans_add_unrevoke(GFS2_SB(&ip->i_inode), *block, 1); | ||
377 | } | ||
375 | 378 | ||
376 | gfs2_trans_add_bh(ip->i_gl, mp->mp_bh[height], 1); | 379 | gfs2_trans_add_bh(ip->i_gl, mp->mp_bh[height], 1); |
377 | 380 | ||