diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c index bbe07e3a6c75..992637269a84 100644 --- a/fs/f2fs/checkpoint.c +++ b/fs/f2fs/checkpoint.c @@ -1140,6 +1140,10 @@ static int f2fs_sync_inode_meta(struct f2fs_sb_info *sbi) return -EIO; spin_lock(&sbi->inode_lock[DIRTY_META]); + if (unlikely(f2fs_cp_error(sbi))) { + spin_unlock(&sbi->inode_lock[DIRTY_META]); + return -EIO; + } if (list_empty(head)) { spin_unlock(&sbi->inode_lock[DIRTY_META]); return 0; @@ -1155,6 +1159,8 @@ static int f2fs_sync_inode_meta(struct f2fs_sb_info *sbi) if (is_inode_flag_set(inode, FI_DIRTY_INODE)) f2fs_update_inode_page(inode); iput(inode); + if (unlikely(f2fs_cp_error(sbi))) + return EIO; } } return 0;