f2fs: mark recovery flag correctly in read_raw_super_block()
On the combination of first fail and second success, we will miss to mark recovery flag because currently we reuse err variable in the loop. Signed-off-by: Chengguang Xu <cgxu519@zoho.com.cn> Reviewed-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
fe1897eaa6
commit
ed3520427f
|
@ -2951,6 +2951,7 @@ static int read_raw_super_block(struct f2fs_sb_info *sbi,
|
|||
f2fs_err(sbi, "Unable to read %dth superblock",
|
||||
block + 1);
|
||||
err = -EIO;
|
||||
*recovery = 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -2960,6 +2961,7 @@ static int read_raw_super_block(struct f2fs_sb_info *sbi,
|
|||
f2fs_err(sbi, "Can't find valid F2FS filesystem in %dth superblock",
|
||||
block + 1);
|
||||
brelse(bh);
|
||||
*recovery = 1;
|
||||
continue;
|
||||
}
|
||||
|
||||
|
@ -2972,10 +2974,6 @@ static int read_raw_super_block(struct f2fs_sb_info *sbi,
|
|||
brelse(bh);
|
||||
}
|
||||
|
||||
/* Fail to read any one of the superblocks*/
|
||||
if (err < 0)
|
||||
*recovery = 1;
|
||||
|
||||
/* No valid superblock */
|
||||
if (!*raw_super)
|
||||
kvfree(super);
|
||||
|
|
Loading…
Reference in New Issue