diff options
author | Jaegeuk Kim <jaegeuk@kernel.org> | 2016-09-21 09:37:23 -0700 |
---|---|---|
committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2016-09-30 17:34:26 -0700 |
commit | 646e759a4d09062df943eaf61cb8141a91204380 (patch) | |
tree | 4e9dca2bfeaada534b1d1be90f96e61244124812 /fs/f2fs | |
parent | f6fe2be3c6d6f0127742ae1cc2e3ffe9ad31ea8b (diff) | |
download | linux-stable-646e759a4d09062df943eaf61cb8141a91204380.tar.gz linux-stable-646e759a4d09062df943eaf61cb8141a91204380.tar.bz2 linux-stable-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/f2fs')
-rw-r--r-- | fs/f2fs/gc.c | 3 |
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 */ |