diff options
Diffstat (limited to 'fs/ext4/ialloc.c')
| -rw-r--r-- | fs/ext4/ialloc.c | 10 | 
1 files changed, 5 insertions, 5 deletions
diff --git a/fs/ext4/ialloc.c b/fs/ext4/ialloc.c index f03598c6ffd3..8bf5999875ee 100644 --- a/fs/ext4/ialloc.c +++ b/fs/ext4/ialloc.c @@ -734,11 +734,8 @@ repeat_in_this_group:  		ino = ext4_find_next_zero_bit((unsigned long *)  					      inode_bitmap_bh->b_data,  					      EXT4_INODES_PER_GROUP(sb), ino); -		if (ino >= EXT4_INODES_PER_GROUP(sb)) { -			if (++group == ngroups) -				group = 0; -			continue; -		} +		if (ino >= EXT4_INODES_PER_GROUP(sb)) +			goto next_group;  		if (group == 0 && (ino+1) < EXT4_FIRST_INO(sb)) {  			ext4_error(sb, "reserved inode found cleared - "  				   "inode=%lu", ino + 1); @@ -769,6 +766,9 @@ repeat_in_this_group:  			goto got; /* we grabbed the inode! */  		if (ino < EXT4_INODES_PER_GROUP(sb))  			goto repeat_in_this_group; +next_group: +		if (++group == ngroups) +			group = 0;  	}  	err = -ENOSPC;  	goto out;  | 
