mirror of https://gitee.com/openkylin/linux.git
ext4: Fixed inode allocator to correctly track a flex_bg's used_dirs
When used_dirs was introduced for the flex_groups struct, it looks like the accounting was not put into place properly, in some places manipulating free_inodes rather than used_dirs. Signed-off-by: Eric Sandeen <sandeen@redhat.com> Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
This commit is contained in:
parent
ba69f9ab7d
commit
c4caae2518
|
@ -263,7 +263,7 @@ void ext4_free_inode(handle_t *handle, struct inode *inode)
|
|||
ext4_group_t f;
|
||||
|
||||
f = ext4_flex_group(sbi, block_group);
|
||||
atomic_dec(&sbi->s_flex_groups[f].free_inodes);
|
||||
atomic_dec(&sbi->s_flex_groups[f].used_dirs);
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -773,7 +773,7 @@ static int ext4_claim_inode(struct super_block *sb,
|
|||
if (sbi->s_log_groups_per_flex) {
|
||||
ext4_group_t f = ext4_flex_group(sbi, group);
|
||||
|
||||
atomic_inc(&sbi->s_flex_groups[f].free_inodes);
|
||||
atomic_inc(&sbi->s_flex_groups[f].used_dirs);
|
||||
}
|
||||
}
|
||||
gdp->bg_checksum = ext4_group_desc_csum(sbi, group, gdp);
|
||||
|
|
Loading…
Reference in New Issue