mirror of
https://github.com/Fishwaldo/Star64_linux.git
synced 2025-06-23 23:21:46 +00:00
ext4: introduce ext4_get_group_number()
Currently on many places in ext4 we're using ext4_get_group_no_and_offset() even though we're only interested in knowing the block group of the particular block, not the offset within the block group so we can use more efficient way to compute block group. This patch introduces ext4_get_group_number() which computes block group for a given block much more efficiently. Use this function instead of ext4_get_group_no_and_offset() everywhere where we're only interested in knowing the block group. Signed-off-by: Lukas Czerner <lczerner@redhat.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit is contained in:
parent
689110098c
commit
bd86298e60
4 changed files with 33 additions and 18 deletions
|
@ -272,7 +272,7 @@ next_group:
|
|||
if (start_blk >= last_blk)
|
||||
goto next_group;
|
||||
group_data[bb_index].block_bitmap = start_blk++;
|
||||
ext4_get_group_no_and_offset(sb, start_blk - 1, &group, NULL);
|
||||
group = ext4_get_group_number(sb, start_blk - 1);
|
||||
group -= group_data[0].group;
|
||||
group_data[group].free_blocks_count--;
|
||||
if (flexbg_size > 1)
|
||||
|
@ -284,7 +284,7 @@ next_group:
|
|||
if (start_blk >= last_blk)
|
||||
goto next_group;
|
||||
group_data[ib_index].inode_bitmap = start_blk++;
|
||||
ext4_get_group_no_and_offset(sb, start_blk - 1, &group, NULL);
|
||||
group = ext4_get_group_number(sb, start_blk - 1);
|
||||
group -= group_data[0].group;
|
||||
group_data[group].free_blocks_count--;
|
||||
if (flexbg_size > 1)
|
||||
|
@ -296,7 +296,7 @@ next_group:
|
|||
if (start_blk + EXT4_SB(sb)->s_itb_per_group > last_blk)
|
||||
goto next_group;
|
||||
group_data[it_index].inode_table = start_blk;
|
||||
ext4_get_group_no_and_offset(sb, start_blk, &group, NULL);
|
||||
group = ext4_get_group_number(sb, start_blk - 1);
|
||||
group -= group_data[0].group;
|
||||
group_data[group].free_blocks_count -=
|
||||
EXT4_SB(sb)->s_itb_per_group;
|
||||
|
@ -392,7 +392,7 @@ static int set_flexbg_block_bitmap(struct super_block *sb, handle_t *handle,
|
|||
ext4_group_t group;
|
||||
int err;
|
||||
|
||||
ext4_get_group_no_and_offset(sb, block, &group, NULL);
|
||||
group = ext4_get_group_number(sb, block);
|
||||
start = ext4_group_first_block_no(sb, group);
|
||||
group -= flex_gd->groups[0].group;
|
||||
|
||||
|
@ -1879,7 +1879,7 @@ retry:
|
|||
/* Nothing need to do */
|
||||
return 0;
|
||||
|
||||
ext4_get_group_no_and_offset(sb, n_blocks_count - 1, &n_group, &offset);
|
||||
n_group = ext4_get_group_number(sb, n_blocks_count - 1);
|
||||
ext4_get_group_no_and_offset(sb, o_blocks_count - 1, &o_group, &offset);
|
||||
|
||||
n_desc_blocks = num_desc_blocks(sb, n_group + 1);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue