mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-12-01 08:04:22 +08:00
ext3: remove max_debt in find_group_orlov()
max_debt, involved variables and calculations are no longer needed, clean them up. Signed-off-by: Akira Fujita <a-fujita@rs.jp.nec.com> Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
parent
2db938bee3
commit
ac0dd24748
@ -180,8 +180,7 @@ error_return:
|
|||||||
* It's OK to put directory into a group unless
|
* It's OK to put directory into a group unless
|
||||||
* it has too many directories already (max_dirs) or
|
* it has too many directories already (max_dirs) or
|
||||||
* it has too few free inodes left (min_inodes) or
|
* it has too few free inodes left (min_inodes) or
|
||||||
* it has too few free blocks left (min_blocks) or
|
* it has too few free blocks left (min_blocks).
|
||||||
* it's already running too large debt (max_debt).
|
|
||||||
* Parent's group is preferred, if it doesn't satisfy these
|
* Parent's group is preferred, if it doesn't satisfy these
|
||||||
* conditions we search cyclically through the rest. If none
|
* conditions we search cyclically through the rest. If none
|
||||||
* of the groups look good we just look for a group with more
|
* of the groups look good we just look for a group with more
|
||||||
@ -191,21 +190,16 @@ error_return:
|
|||||||
* when we allocate an inode, within 0--255.
|
* when we allocate an inode, within 0--255.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#define INODE_COST 64
|
|
||||||
#define BLOCK_COST 256
|
|
||||||
|
|
||||||
static int find_group_orlov(struct super_block *sb, struct inode *parent)
|
static int find_group_orlov(struct super_block *sb, struct inode *parent)
|
||||||
{
|
{
|
||||||
int parent_group = EXT3_I(parent)->i_block_group;
|
int parent_group = EXT3_I(parent)->i_block_group;
|
||||||
struct ext3_sb_info *sbi = EXT3_SB(sb);
|
struct ext3_sb_info *sbi = EXT3_SB(sb);
|
||||||
struct ext3_super_block *es = sbi->s_es;
|
|
||||||
int ngroups = sbi->s_groups_count;
|
int ngroups = sbi->s_groups_count;
|
||||||
int inodes_per_group = EXT3_INODES_PER_GROUP(sb);
|
int inodes_per_group = EXT3_INODES_PER_GROUP(sb);
|
||||||
unsigned int freei, avefreei;
|
unsigned int freei, avefreei;
|
||||||
ext3_fsblk_t freeb, avefreeb;
|
ext3_fsblk_t freeb, avefreeb;
|
||||||
ext3_fsblk_t blocks_per_dir;
|
|
||||||
unsigned int ndirs;
|
unsigned int ndirs;
|
||||||
int max_debt, max_dirs, min_inodes;
|
int max_dirs, min_inodes;
|
||||||
ext3_grpblk_t min_blocks;
|
ext3_grpblk_t min_blocks;
|
||||||
int group = -1, i;
|
int group = -1, i;
|
||||||
struct ext3_group_desc *desc;
|
struct ext3_group_desc *desc;
|
||||||
@ -242,20 +236,10 @@ static int find_group_orlov(struct super_block *sb, struct inode *parent)
|
|||||||
goto fallback;
|
goto fallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
blocks_per_dir = (le32_to_cpu(es->s_blocks_count) - freeb) / ndirs;
|
|
||||||
|
|
||||||
max_dirs = ndirs / ngroups + inodes_per_group / 16;
|
max_dirs = ndirs / ngroups + inodes_per_group / 16;
|
||||||
min_inodes = avefreei - inodes_per_group / 4;
|
min_inodes = avefreei - inodes_per_group / 4;
|
||||||
min_blocks = avefreeb - EXT3_BLOCKS_PER_GROUP(sb) / 4;
|
min_blocks = avefreeb - EXT3_BLOCKS_PER_GROUP(sb) / 4;
|
||||||
|
|
||||||
max_debt = EXT3_BLOCKS_PER_GROUP(sb) / max(blocks_per_dir, (ext3_fsblk_t)BLOCK_COST);
|
|
||||||
if (max_debt * INODE_COST > inodes_per_group)
|
|
||||||
max_debt = inodes_per_group / INODE_COST;
|
|
||||||
if (max_debt > 255)
|
|
||||||
max_debt = 255;
|
|
||||||
if (max_debt == 0)
|
|
||||||
max_debt = 1;
|
|
||||||
|
|
||||||
for (i = 0; i < ngroups; i++) {
|
for (i = 0; i < ngroups; i++) {
|
||||||
group = (parent_group + i) % ngroups;
|
group = (parent_group + i) % ngroups;
|
||||||
desc = ext3_get_group_desc (sb, group, NULL);
|
desc = ext3_get_group_desc (sb, group, NULL);
|
||||||
|
Loading…
Reference in New Issue
Block a user