ocfs2: Free block to the right block group.
In case the block we are going to free is allocated from a discontiguous block group, we have to use suballoc_loc to be the right group. Signed-off-by: Tao Ma <tao.ma@oracle.com>
This commit is contained in:
@@ -4466,7 +4466,10 @@ static int ocfs2_dx_dir_remove_index(struct inode *dir,
|
||||
|
||||
blk = le64_to_cpu(dx_root->dr_blkno);
|
||||
bit = le16_to_cpu(dx_root->dr_suballoc_bit);
|
||||
bg_blkno = ocfs2_which_suballoc_group(blk, bit);
|
||||
if (dx_root->dr_suballoc_loc)
|
||||
bg_blkno = le64_to_cpu(dx_root->dr_suballoc_loc);
|
||||
else
|
||||
bg_blkno = ocfs2_which_suballoc_group(blk, bit);
|
||||
ret = ocfs2_free_suballoc_bits(handle, dx_alloc_inode, dx_alloc_bh,
|
||||
bit, bg_blkno, 1);
|
||||
if (ret)
|
||||
|
Reference in New Issue
Block a user