summaryrefslogtreecommitdiffstats
path: root/fs/f2fs/node.c
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk@kernel.org>2022-06-18 00:42:24 -0700
committerJaegeuk Kim <jaegeuk@kernel.org>2022-06-21 08:29:56 -0700
commit82c7863ed95d0914f02c7c8c011200a763bc6725 (patch)
tree79d7d56a45673be9fced1ecff3ea1bb71f373205 /fs/f2fs/node.c
parent61803e984307c767a96d85f3b61ca50e1705fc67 (diff)
downloadlinux-stable-82c7863ed95d0914f02c7c8c011200a763bc6725.tar.gz
linux-stable-82c7863ed95d0914f02c7c8c011200a763bc6725.tar.bz2
linux-stable-82c7863ed95d0914f02c7c8c011200a763bc6725.zip
f2fs: do not count ENOENT for error case
Otherwise, we can get a wrong cp_error mark. Cc: <stable@vger.kernel.org> Fixes: a7b8618aa2f0 ("f2fs: avoid infinite loop to flush node pages") Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs/f2fs/node.c')
-rw-r--r--fs/f2fs/node.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c
index 836c79a20afc..cf6f7fc83c08 100644
--- a/fs/f2fs/node.c
+++ b/fs/f2fs/node.c
@@ -1450,7 +1450,9 @@ page_hit:
out_err:
ClearPageUptodate(page);
out_put_err:
- f2fs_handle_page_eio(sbi, page->index, NODE);
+ /* ENOENT comes from read_node_page which is not an error. */
+ if (err != -ENOENT)
+ f2fs_handle_page_eio(sbi, page->index, NODE);
f2fs_put_page(page, 1);
return ERR_PTR(err);
}