aboutsummaryrefslogtreecommitdiffstats
path: root/fs/f2fs
diff options
context:
space:
mode:
authorWeichao Guo <guoweichao@oppo.com>2021-09-18 20:46:36 +0800
committerJaegeuk Kim <jaegeuk@kernel.org>2021-09-20 16:29:00 -0700
commit6663b138ded1a59e630c9e605e42aa7fde490cdc (patch)
tree08608d82d41ef37267530125080801ebf197282c /fs/f2fs
parentf2fs: introduce excess_dirty_threshold() (diff)
downloadlinux-dev-6663b138ded1a59e630c9e605e42aa7fde490cdc.tar.xz
linux-dev-6663b138ded1a59e630c9e605e42aa7fde490cdc.zip
f2fs: set SBI_NEED_FSCK flag when inconsistent node block found
Inconsistent node block will cause a file fail to open or read, which could make the user process crashes or stucks. Let's mark SBI_NEED_FSCK flag to trigger a fix at next fsck time. After unlinking the corrupted file, the user process could regenerate a new one and work correctly. Signed-off-by: Weichao Guo <guoweichao@oppo.com> Reviewed-by: Chao Yu <chao@kernel.org> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs')
-rw-r--r--fs/f2fs/node.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c
index e863136081b4..556fcd8457f3 100644
--- a/fs/f2fs/node.c
+++ b/fs/f2fs/node.c
@@ -1443,6 +1443,7 @@ page_hit:
nid, nid_of_node(page), ino_of_node(page),
ofs_of_node(page), cpver_of_node(page),
next_blkaddr_of_node(page));
+ set_sbi_flag(sbi, SBI_NEED_FSCK);
err = -EINVAL;
out_err:
ClearPageUptodate(page);