mirror of https://gitee.com/openkylin/linux.git
ext4: cleanup goto next group
avoid duplicated codes, also we need goto next group in case we found reserved inode. Signed-off-by: Wang Shilong <wshilong@ddn.com> Signed-off-by: Theodore Ts'o <tytso@mit.edu> Reviewed-by: Jan Kara <jack@suse.cz>
This commit is contained in:
parent
4f9d956d19
commit
2fe435d8b0
|
@ -892,19 +892,13 @@ struct inode *__ext4_new_inode(handle_t *handle, struct inode *dir,
|
|||
/*
|
||||
* Check free inodes count before loading bitmap.
|
||||
*/
|
||||
if (ext4_free_inodes_count(sb, gdp) == 0) {
|
||||
if (++group == ngroups)
|
||||
group = 0;
|
||||
continue;
|
||||
}
|
||||
if (ext4_free_inodes_count(sb, gdp) == 0)
|
||||
goto next_group;
|
||||
|
||||
grp = ext4_get_group_info(sb, group);
|
||||
/* Skip groups with already-known suspicious inode tables */
|
||||
if (EXT4_MB_GRP_IBITMAP_CORRUPT(grp)) {
|
||||
if (++group == ngroups)
|
||||
group = 0;
|
||||
continue;
|
||||
}
|
||||
if (EXT4_MB_GRP_IBITMAP_CORRUPT(grp))
|
||||
goto next_group;
|
||||
|
||||
brelse(inode_bitmap_bh);
|
||||
inode_bitmap_bh = ext4_read_inode_bitmap(sb, group);
|
||||
|
@ -912,9 +906,7 @@ struct inode *__ext4_new_inode(handle_t *handle, struct inode *dir,
|
|||
if (EXT4_MB_GRP_IBITMAP_CORRUPT(grp) ||
|
||||
IS_ERR(inode_bitmap_bh)) {
|
||||
inode_bitmap_bh = NULL;
|
||||
if (++group == ngroups)
|
||||
group = 0;
|
||||
continue;
|
||||
goto next_group;
|
||||
}
|
||||
|
||||
repeat_in_this_group:
|
||||
|
@ -926,7 +918,7 @@ struct inode *__ext4_new_inode(handle_t *handle, struct inode *dir,
|
|||
if (group == 0 && (ino+1) < EXT4_FIRST_INO(sb)) {
|
||||
ext4_error(sb, "reserved inode found cleared - "
|
||||
"inode=%lu", ino + 1);
|
||||
continue;
|
||||
goto next_group;
|
||||
}
|
||||
if ((EXT4_SB(sb)->s_journal == NULL) &&
|
||||
recently_deleted(sb, group, ino)) {
|
||||
|
|
Loading…
Reference in New Issue