diff --git a/fs/f2fs/segment.c b/fs/f2fs/segment.c index ff4b7238f36d333c82503626887c4dc118ecb98b..3ff4621394367409a64c9461a88c0ae8ebaa4da0 100644 --- a/fs/f2fs/segment.c +++ b/fs/f2fs/segment.c @@ -1353,6 +1353,12 @@ int f2fs_trim_fs(struct f2fs_sb_info *sbi, struct fstrim_range *range) if (end <= MAIN_BLKADDR(sbi)) goto out; + if (is_sbi_flag_set(sbi, SBI_NEED_FSCK)) { + f2fs_msg(sbi->sb, KERN_WARNING, + "Found FS corruption, run fsck to fix."); + goto out; + } + /* start/end segment number in main_area */ start_segno = (start <= MAIN_BLKADDR(sbi)) ? 0 : GET_SEGNO(sbi, start); end_segno = (end >= MAX_BLKADDR(sbi)) ? MAIN_SEGS(sbi) - 1 :