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 30d718b..651e5320 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) if (isdir) { block = gfs2_alloc_meta(ip); - + gfs2_trans_add_unrevoke(GFS2_SB(&ip->i_inode), block, 1); error = gfs2_dir_get_new_buffer(ip, block, &bh); if (error) goto out_brelse; @@ -206,6 +206,7 @@ static int build_height(struct inode *inode, struct metapath *mp, unsigned heigh for(n = 0; n < new_height; n++) { bn = gfs2_alloc_meta(ip); + gfs2_trans_add_unrevoke(GFS2_SB(inode), bn, 1); mp->mp_bh[n] = gfs2_meta_new(ip->i_gl, bn); gfs2_trans_add_bh(ip->i_gl, mp->mp_bh[n], 1); } @@ -370,8 +371,10 @@ static int lookup_block(struct gfs2_inode *ip, unsigned int height, if (height == ip->i_height - 1 && !gfs2_is_dir(ip)) *block = gfs2_alloc_data(ip); - else + else { *block = gfs2_alloc_meta(ip); + gfs2_trans_add_unrevoke(GFS2_SB(&ip->i_inode), *block, 1); + } gfs2_trans_add_bh(ip->i_gl, mp->mp_bh[height], 1); |