f2fs: avoid gc in cp_error case
authorJaegeuk Kim <jaegeuk@kernel.org>
Wed, 21 Sep 2016 16:37:23 +0000 (09:37 -0700)
committerJaegeuk Kim <jaegeuk@kernel.org>
Sat, 1 Oct 2016 00:34:26 +0000 (17:34 -0700)
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>
fs/f2fs/gc.c

index a9a3c9f..b9d6c42 100644 (file)
@@ -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 */