diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c index 72f227f6ebad094c1712efae3eeedb0e2d47d7ba..8719f2e2e64ed2ddc1ee2a45f2f877613f9b2e43 100644 --- a/fs/f2fs/gc.c +++ b/fs/f2fs/gc.c @@ -1429,7 +1429,8 @@ static int gc_data_segment(struct f2fs_sb_info *sbi, struct f2fs_summary *sum, if (phase == 3) { inode = f2fs_iget(sb, dni.ino); - if (IS_ERR(inode) || is_bad_inode(inode)) { + if (IS_ERR(inode) || is_bad_inode(inode) || + special_file(inode->i_mode)) { set_sbi_flag(sbi, SBI_NEED_FSCK); continue; }