Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1720644

[PATCH] f2fs: collect prefree segments to avoild write checkpoint fail

From Yunlong Song <yunlong.song@huawei.com>
Newsgroups linux.kernel
Subject [PATCH] f2fs: collect prefree segments to avoild write checkpoint fail
Date 2017-08-26 13:50 +0200
Message-ID <uiHLc-F0-13@gated-at.bofh.it> (permalink)
Organization linux.* mail to news gateway

Show all headers | View raw


In come corner case, the reserved segments are used to do gc, and there are
not enough free segments for write checkpoint to finish its job, then the
gc process will fail to change the prefree segments to free segments.

Signed-off-by: Yunlong Song <yunlong.song@huawei.com>
---
 fs/f2fs/gc.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
index cd147e7..c8a828f 100644
--- a/fs/f2fs/gc.c
+++ b/fs/f2fs/gc.c
@@ -1056,6 +1056,13 @@ int f2fs_gc(struct f2fs_sb_info *sbi, bool sync,
 	if (!sync) {
 		if (has_not_enough_free_secs(sbi, sec_freed, 0)) {
 			segno = NULL_SEGNO;
+			if (prefree_segments(sbi) &&
+				has_not_enough_free_secs(sbi,
+					reserved_sections(sbi), 0)) {
+				ret = write_checkpoint(sbi, &cpc);
+				if (ret)
+					goto stop;
+			}
 			goto gc_more;
 		}
 
-- 
1.8.5.2

Back to linux.kernel | Previous | NextNext in thread | Find similar | Unroll thread


Thread

[PATCH] f2fs: collect prefree segments to avoild write checkpoint fail Yunlong Song <yunlong.song@huawei.com> - 2017-08-26 13:50 +0200
  Re: [PATCH] f2fs: collect prefree segments to avoild write checkpoint  fail Chao Yu <yuchao0@huawei.com> - 2017-08-28 12:00 +0200
  [PATCH v2] f2fs: collect prefree segments to avoild write checkpoint fail Yunlong Song <yunlong.song@huawei.com> - 2017-09-01 14:10 +0200

csiph-web