|
@@ -901,6 +901,7 @@ static int dir_make_exhash(struct inode *inode)
|
|
|
|
|
|
dip->i_di.di_size = sdp->sd_sb.sb_bsize / 2;
|
|
dip->i_di.di_size = sdp->sd_sb.sb_bsize / 2;
|
|
dip->i_di.di_blocks++;
|
|
dip->i_di.di_blocks++;
|
|
|
|
+ gfs2_set_inode_blocks(&dip->i_inode);
|
|
dip->i_di.di_flags |= GFS2_DIF_EXHASH;
|
|
dip->i_di.di_flags |= GFS2_DIF_EXHASH;
|
|
|
|
|
|
for (x = sdp->sd_hash_ptrs, y = -1; x; x >>= 1, y++) ;
|
|
for (x = sdp->sd_hash_ptrs, y = -1; x; x >>= 1, y++) ;
|
|
@@ -1038,6 +1039,7 @@ static int dir_split_leaf(struct inode *inode, const struct qstr *name)
|
|
error = gfs2_meta_inode_buffer(dip, &dibh);
|
|
error = gfs2_meta_inode_buffer(dip, &dibh);
|
|
if (!gfs2_assert_withdraw(GFS2_SB(&dip->i_inode), !error)) {
|
|
if (!gfs2_assert_withdraw(GFS2_SB(&dip->i_inode), !error)) {
|
|
dip->i_di.di_blocks++;
|
|
dip->i_di.di_blocks++;
|
|
|
|
+ gfs2_set_inode_blocks(&dip->i_inode);
|
|
gfs2_dinode_out(dip, dibh->b_data);
|
|
gfs2_dinode_out(dip, dibh->b_data);
|
|
brelse(dibh);
|
|
brelse(dibh);
|
|
}
|
|
}
|
|
@@ -1516,6 +1518,7 @@ static int dir_new_leaf(struct inode *inode, const struct qstr *name)
|
|
return error;
|
|
return error;
|
|
gfs2_trans_add_bh(ip->i_gl, bh, 1);
|
|
gfs2_trans_add_bh(ip->i_gl, bh, 1);
|
|
ip->i_di.di_blocks++;
|
|
ip->i_di.di_blocks++;
|
|
|
|
+ gfs2_set_inode_blocks(&ip->i_inode);
|
|
gfs2_dinode_out(ip, bh->b_data);
|
|
gfs2_dinode_out(ip, bh->b_data);
|
|
brelse(bh);
|
|
brelse(bh);
|
|
return 0;
|
|
return 0;
|
|
@@ -1860,6 +1863,7 @@ static int leaf_dealloc(struct gfs2_inode *dip, u32 index, u32 len,
|
|
if (!dip->i_di.di_blocks)
|
|
if (!dip->i_di.di_blocks)
|
|
gfs2_consist_inode(dip);
|
|
gfs2_consist_inode(dip);
|
|
dip->i_di.di_blocks--;
|
|
dip->i_di.di_blocks--;
|
|
|
|
+ gfs2_set_inode_blocks(&dip->i_inode);
|
|
}
|
|
}
|
|
|
|
|
|
error = gfs2_dir_write_data(dip, ht, index * sizeof(u64), size);
|
|
error = gfs2_dir_write_data(dip, ht, index * sizeof(u64), size);
|