diff options
author | Theodore Ts'o <tytso@mit.edu> | 2011-12-28 20:25:13 -0500 |
---|---|---|
committer | Theodore Ts'o <tytso@mit.edu> | 2011-12-28 20:25:13 -0500 |
commit | 14c83c9fddf2e75bdd0c20f1072f35260e356484 (patch) | |
tree | 277c2c78f709048543b5eca3064ce3d98a7a3cf3 /fs/ext4 | |
parent | 88635ca277adb67db34e88281817d1ce10713553 (diff) | |
download | op-kernel-dev-14c83c9fddf2e75bdd0c20f1072f35260e356484.zip op-kernel-dev-14c83c9fddf2e75bdd0c20f1072f35260e356484.tar.gz |
ext4: avoid counting the number of free inodes twice in find_group_orlov()
Signed-off-by: "Theodore Ts'o" <tytso@mit.edu>
Diffstat (limited to 'fs/ext4')
-rw-r--r-- | fs/ext4/ialloc.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c index 8fb6844..cdafc05 100644 --- a/fs/ext4/ialloc.c +++ b/fs/ext4/ialloc.c @@ -358,7 +358,7 @@ static int find_group_orlov(struct super_block *sb, struct inode *parent, struct ext4_sb_info *sbi = EXT4_SB(sb); ext4_group_t real_ngroups = ext4_get_groups_count(sb); int inodes_per_group = EXT4_INODES_PER_GROUP(sb); - unsigned int freei, avefreei; + unsigned int freei, avefreei, grp_free; ext4_fsblk_t freeb, avefreec; unsigned int ndirs; int max_dirs, min_inodes; @@ -477,8 +477,8 @@ fallback_retry: for (i = 0; i < ngroups; i++) { grp = (parent_group + i) % ngroups; desc = ext4_get_group_desc(sb, grp, NULL); - if (desc && ext4_free_inodes_count(sb, desc) && - ext4_free_inodes_count(sb, desc) >= avefreei) { + grp_free = ext4_free_inodes_count(sb, desc); + if (desc && grp_free && grp_free >= avefreei) { *group = grp; return 0; } |