From nobody Tue Apr 28 09:06:11 2026 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 79F7EC43334 for ; Wed, 1 Jun 2022 21:14:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231431AbiFAVOg (ORCPT ); Wed, 1 Jun 2022 17:14:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41554 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231406AbiFAVOd (ORCPT ); Wed, 1 Jun 2022 17:14:33 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B7E66633B9 for ; Wed, 1 Jun 2022 14:14:31 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 6827EB81C38 for ; Wed, 1 Jun 2022 21:14:30 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 07E3DC385B8; Wed, 1 Jun 2022 21:14:28 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1654118069; bh=YS5IOiL9dBi2zEpaewYYTodWjSpqUzZtFaSZlv5Z/II=; h=From:To:Cc:Subject:Date:From; b=WRNSXd37nZ9tk86Gt+WreCXc4zZmfI3kf/OQ/NYetdgAL8OEIlpvS29IXI0OWjNxl rlw8nDuBknvhcmezjQjF64NEMfgY4SAPntcYEvjylKdIe3Sv6ZcgG4ngTQHJmV8bp5 ECqMhRz10pP7y5ftF2Q5SDqOXzpHZ4zW2K8PrwJxLMRHpxNko24NLkfzRxavRtIhsg 57Rwfe4uvAzYMubjtb2EFxx+v3jgTnl0KxE2TaZfku5ibxG6Cp0EVygyPFRrRF5Wgz pZyfjbFnH+B64Vwdhhf1h72NrhlmxXi+jeHboHrA7SW45H4DynjcAn96gldGFCHL8D zIOsixA8i9qpA== From: Jaegeuk Kim To: linux-kernel@vger.kernel.org Cc: Jaegeuk Kim Subject: [PATCH] f2fs: attach inline_data after setting compression Date: Wed, 1 Jun 2022 14:14:27 -0700 Message-Id: <20220601211427.2345120-1-jaegeuk@kernel.org> X-Mailer: git-send-email 2.36.1.255.ge46751e96f-goog MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" This fixes the below corruption. [345393.335389] F2FS-fs (vdb): sanity_check_inode: inode (ino=3D6d0, mode= =3D33206) should not have inline_data, run fsck to fix Fixes: 677a82b44ebf ("f2fs: fix to do sanity check for inline inode") Signed-off-by: Jaegeuk Kim --- fs/f2fs/namei.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c index c549acb52ac4..a841abe6a071 100644 --- a/fs/f2fs/namei.c +++ b/fs/f2fs/namei.c @@ -89,8 +89,6 @@ static struct inode *f2fs_new_inode(struct user_namespace= *mnt_userns, if (test_opt(sbi, INLINE_XATTR)) set_inode_flag(inode, FI_INLINE_XATTR); =20 - if (test_opt(sbi, INLINE_DATA) && f2fs_may_inline_data(inode)) - set_inode_flag(inode, FI_INLINE_DATA); if (f2fs_may_inline_dentry(inode)) set_inode_flag(inode, FI_INLINE_DENTRY); =20 @@ -107,10 +105,6 @@ static struct inode *f2fs_new_inode(struct user_namesp= ace *mnt_userns, =20 f2fs_init_extent_tree(inode, NULL); =20 - stat_inc_inline_xattr(inode); - stat_inc_inline_inode(inode); - stat_inc_inline_dir(inode); - F2FS_I(inode)->i_flags =3D f2fs_mask_flags(mode, F2FS_I(dir)->i_flags & F2FS_FL_INHERITED); =20 @@ -127,6 +121,14 @@ static struct inode *f2fs_new_inode(struct user_namesp= ace *mnt_userns, set_compress_context(inode); } =20 + /* Should enable inline_data after compression set */ + if (test_opt(sbi, INLINE_DATA) && f2fs_may_inline_data(inode)) + set_inode_flag(inode, FI_INLINE_DATA); + + stat_inc_inline_xattr(inode); + stat_inc_inline_inode(inode); + stat_inc_inline_dir(inode); + f2fs_set_inode_flags(inode); =20 trace_f2fs_new_inode(inode, 0); @@ -325,6 +327,8 @@ static void set_compress_inode(struct f2fs_sb_info *sbi= , struct inode *inode, if (!is_extension_exist(name, ext[i], false)) continue; =20 + /* Do not use inline_data with compression */ + clear_inode_flag(inode, FI_INLINE_DATA); set_compress_context(inode); return; } --=20 2.36.1.255.ge46751e96f-goog