f2fs: set SBI_NEED_FSCK when encountering exception in recovery
PATCH 1/1 f2fs: set SBI_NEED_FSCK when encountering exception in recovery
This patch tries to set SBI_NEED_FSCK flag into sbi only when we fail to recover in fill_super, so we could skip fscking image when we fail to fill super for other reason.
Signed-off-by Chao Yu <[email protected]>
--- fs/f2fs/super.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-)
fs/f2fs/super.c +6 -4
@@ -966,7 +966,7 @@ static int f2fs_fill_super(struct super_block *sb, void *data, int silent)struct buffer_head *raw_super_buf;struct inode *root;long err = -EINVAL ; -bool retry = true; +bool retry = true, need_fsck = false;char *options =NULL ;int i;
@@ -1155,9 +1155,6 @@ try_onemore:if (err) goto free_proc; -if (!retry) -set_sbi_flag (sbi,SBI_NEED_FSCK ); -/* recover fsynced data */ if (!test_opt (sbi,DISABLE_ROLL_FORWARD )) {/*
@@ -1169,8 +1166,13 @@ try_onemore: err = -EROFS ; goto free_kobj; } + +if (need_fsck) +set_sbi_flag (sbi,SBI_NEED_FSCK ); + err =recover_fsync_data (sbi);if (err) { + need_fsck = true;f2fs_msg (sb,KERN_ERR ,"Cannot recover all fsync data errno=%ld" , err); goto free_kobj;
Signature · 1 line
2.3.0