summaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
authorJaegeuk Kim <jaegeuk@kernel.org>2016-09-21 09:37:23 -0700
committerJaegeuk Kim <jaegeuk@kernel.org>2016-09-30 17:34:26 -0700
commit646e759a4d09062df943eaf61cb8141a91204380 (patch)
tree4e9dca2bfeaada534b1d1be90f96e61244124812 /fs
parentf6fe2be3c6d6f0127742ae1cc2e3ffe9ad31ea8b (diff)
downloadlinux-646e759a4d09062df943eaf61cb8141a91204380.tar.gz
linux-646e759a4d09062df943eaf61cb8141a91204380.tar.bz2
linux-646e759a4d09062df943eaf61cb8141a91204380.zip
f2fs: avoid gc in cp_error case
Otherwise, we can hit f2fs_bug_on(sbi, !PageUptodate(sum_page)); Reviewed-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
Diffstat (limited to 'fs')
-rw-r--r--fs/f2fs/gc.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c
index a9a3c9f19032..b9d6c4250efa 100644
--- a/fs/f2fs/gc.c
+++ b/fs/f2fs/gc.c
@@ -847,7 +847,8 @@ static int do_garbage_collect(struct f2fs_sb_info *sbi,
for (segno = start_segno; segno < end_segno; segno++) {
- if (get_valid_blocks(sbi, segno, 1) == 0)
+ if (get_valid_blocks(sbi, segno, 1) == 0 ||
+ unlikely(f2fs_cp_error(sbi)))
goto next;
/* find segment summary of victim */