|
@@ -28,7 +28,8 @@
|
|
|
*/
|
|
|
|
|
|
/*
|
|
|
- * Calculate the block group number and offset, given a block number
|
|
|
+ * Calculate the block group number and offset into the block/cluster
|
|
|
+ * allocation bitmap, given a block number
|
|
|
*/
|
|
|
void ext4_get_group_no_and_offset(struct super_block *sb, ext4_fsblk_t blocknr,
|
|
|
ext4_group_t *blockgrpp, ext4_grpblk_t *offsetp)
|
|
@@ -37,7 +38,8 @@ void ext4_get_group_no_and_offset(struct super_block *sb, ext4_fsblk_t blocknr,
|
|
|
ext4_grpblk_t offset;
|
|
|
|
|
|
blocknr = blocknr - le32_to_cpu(es->s_first_data_block);
|
|
|
- offset = do_div(blocknr, EXT4_BLOCKS_PER_GROUP(sb));
|
|
|
+ offset = do_div(blocknr, EXT4_BLOCKS_PER_GROUP(sb)) >>
|
|
|
+ EXT4_SB(sb)->s_cluster_bits;
|
|
|
if (offsetp)
|
|
|
*offsetp = offset;
|
|
|
if (blockgrpp)
|