]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blame - releases/4.14.60/f2fs-fix-error-path-of-move_data_page.patch
Fixes for 4.19
[thirdparty/kernel/stable-queue.git] / releases / 4.14.60 / f2fs-fix-error-path-of-move_data_page.patch
CommitLineData
a65d4bac
GKH
1From foo@baz Sat Jul 28 10:25:26 CEST 2018
2From: Chao Yu <yuchao0@huawei.com>
3Date: Mon, 28 May 2018 16:59:27 +0800
4Subject: f2fs: fix error path of move_data_page
5
6From: Chao Yu <yuchao0@huawei.com>
7
8[ Upstream commit 14a28559f43ac7c0b98dd1b0e73ec9ec8ab4fc45 ]
9
10This patch fixes error path of move_data_page:
11- clear cold data flag if it fails to write page.
12- redirty page for non-ENOMEM case.
13
14Signed-off-by: Chao Yu <yuchao0@huawei.com>
15Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
16Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
17Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
18---
19 fs/f2fs/gc.c | 11 ++++++++---
20 1 file changed, 8 insertions(+), 3 deletions(-)
21
22--- a/fs/f2fs/gc.c
23+++ b/fs/f2fs/gc.c
24@@ -768,9 +768,14 @@ retry:
25 set_cold_data(page);
26
27 err = do_write_data_page(&fio);
28- if (err == -ENOMEM && is_dirty) {
29- congestion_wait(BLK_RW_ASYNC, HZ/50);
30- goto retry;
31+ if (err) {
32+ clear_cold_data(page);
33+ if (err == -ENOMEM) {
34+ congestion_wait(BLK_RW_ASYNC, HZ/50);
35+ goto retry;
36+ }
37+ if (is_dirty)
38+ set_page_dirty(page);
39 }
40 }
41 out: