Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 14c83c9f authored by Theodore Ts'o's avatar Theodore Ts'o
Browse files

ext4: avoid counting the number of free inodes twice in find_group_orlov()



Signed-off-by: default avatar"Theodore Ts'o" <tytso@mit.edu>
parent 88635ca2
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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;
		}