From nobody Fri Apr 3 01:29:47 2026 Received: from out162-62-57-49.mail.qq.com (out162-62-57-49.mail.qq.com [162.62.57.49]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 77DA63C4577; Wed, 25 Mar 2026 11:11:27 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=162.62.57.49 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774437091; cv=none; b=YJbJToGqe5BmwwpNPThKTsEUeXzYNhvDI9gLubq1o7na/F/8ErUBj5u7szrsSPZ8q3foDqxNYYvaIjdle7grHuzx/rUSlUSX3bojne3sDqQCl+5qnaoIQFxpgYZ9/gQy1YAG2kH3SdLUGZjgjQHylnofIidATYKshddZdqsZ+8Y= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1774437091; c=relaxed/simple; bh=aELKRBKfojuEQ66PKGCO4GoBtvuTy8kFguZSgNHtm5E=; h=From:To:Cc:Subject:Mime-Version:Content-Type:Date:Message-ID; b=hU25WtROA2+Y8n0rLGoIZ6zoY/w1Cv/oyWCrOdFO/F35YFLcWiFEkgvAjA0dJjoFXyo0kRtl33jBCwAhiwPNMp91u00163+x1EdfzfTtwTHev92t8zB5ScGC0/WkZKrivktuJ3AnRS6M8S41NKg96w8TlHAyeqGwwpa3AurJca0= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=qq.com; spf=pass smtp.mailfrom=qq.com; dkim=pass (1024-bit key) header.d=qq.com header.i=@qq.com header.b=rim5JkWy; arc=none smtp.client-ip=162.62.57.49 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=qq.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=qq.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=qq.com header.i=@qq.com header.b="rim5JkWy" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=qq.com; s=s201512; t=1774437084; bh=aELKRBKfojuEQ66PKGCO4GoBtvuTy8kFguZSgNHtm5E=; h=From:To:Cc:Subject:Date; b=rim5JkWyf4WVi51/gIW9AHCCGefIUyV7maT2c94Ys7+lHrSS+caVfq7W6odG+5ZnV 4NSu60k1x2cGZ41s1D/Ey7HdbHTWTXDOiLQ1VvBncKwYS8UmuqIUYgQn6sCdNBsETA eSI4uRzYbdZx/fvw8VEpgM0924ruaxfaQzrULOHc= X-QQ-FEAT: oHWrrGTW1dC5tAPeTNEktQWzsGuk/wXs X-QQ-SSF: 00000000000000F0000000000000 X-QQ-XMRINFO: NI4Ajvh11aEjEMj13RCX7UuhPEoou2bs1g== X-QQ-XMAILINFO: Mkr4TrkwxQ3SeYpQAf9EHqAzrA93dS/h2/kVfilDTei+LntGUICvRon1ZkuJhE N4K7aO/6iZjLepxaC7119ribTSgtdLpDa5S0zJsQtq2mW5n2hJpbmryeRAq+VPrdyDAwgeMiH1Mqa jsi2F5Lw118yegGELB5BH4fVATx55uUKgnFfuJGvh43QTNZYgt+fH6edJdr4pHZBogSNff5FNGnAM 3HEH8vAbXtVLDViXYjfe7j0SzHck30ciEKmuz0T0nngCPNq0urL99DyRyL63Pqd7H2f5+duPW/Twg qZ0MXIzfGdO9OEkSXRu4xscpEYTOKbwKM0sd7LW3bheadGx2d+u3O+akkibgRV3HUkUl2eEgqPou8 VUGRjpKdMOdjMtZDbYfX/qv1wgNjoxZVNAHk8YKx0c6P+VIi0iTyOie1XpZAE7LWZBYJJxKhluCbh k4kzswYAkHk34C0Xwm5q0Up/L0IFmh6Ebs8vCaDzIAl99ePRqjXx77di8f4tG/b11S+TBoDoDjlf1 F9Q3unl3732yHE77Pqe5sk9yLSphTnx9/zDBX9ROqfoHhz+LiBgbM6YtlCxEz5V2GneK3t7yGJApP MHTRhDt42DZsoPDXd3T7G1bVVtH5uOfk5VcZfmJeOmYmNIksTI9s8BnooWEWSRiNKmh/CZ/kWs4OY +2x8sVQRzMMm0CMyEoyCKGE6bEcw4pr2DpppMbR+nQZGrESA9BRvAsZptiY2ZsxzSrmC+gQb9Q//4 nmwONbSk4EVv6WGrclcb0gu37iYJzcpqUeey1jWRsCBz55SG+xV8koqJSqW6HisY5J/bajfG+CDo7 3l+YPEl20aSr+mRfjanH9aPS9WLYvnVvNzhwj9b+XPq5ysqvgq7JyE4VR5d78E2jzDQVWxmq0YMor vfswoBWyWGmNFZPdH4Hru/PNoC45+VZW/DXTmf6EK7uCZGroiqBERLYZiHLM4je77YlpMm39RYwiY 8WvRPB+PtgykbrFj/zRjpOeRPISqfw+Ma5T9QI+8tOC357TImNEgd6Bor6XtmfIxxc7N+GWA== X-HAS-ATTACH: no X-QQ-BUSINESS-ORIGIN: 2 X-QQ-STYLE: X-QQ-mid: webmail746t1774437082t1800453 From: "=?ISO-8859-1?B?ZHJpejJ0?=" To: "=?ISO-8859-1?B?c3RhYmxl?=" Cc: "=?ISO-8859-1?B?eGlhbmc=?=" , "=?ISO-8859-1?B?Y2hhbw==?=" , "=?ISO-8859-1?B?amVmZmxleHU=?=" , "=?ISO-8859-1?B?bGludXgta2VybmVs?=" , "=?ISO-8859-1?B?c3l6Ym90KzAxNmQ4NjE3OTdmZDcxODQ5MWE4?=" Subject: [PATCH 6.1.y] erofs: get rid of z_erofs_fill_inode() Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Date: Wed, 25 Mar 2026 19:11:22 +0800 X-Priority: 3 Message-ID: X-QQ-MIME: TCMime 1.0 by Tencent X-Mailer: QQMail 2.x X-QQ-Mailer: QQMail 2.x Content-Type: text/plain; charset="utf-8" [ Upstream commit 4fdadd5b0f0c723c812842454f8cca1619f2e731 ] Prior to big pclusters, non-compact compression indexes could have empty headers. Avoid the legacy path since it can be handled properly as a specific compression header with z_erofs_fill_inode_lazy() too. Tested with existing erofs-utils versions. Link: https://lore.kernel.org/r/20230413092241.73829-1-hsiangkao@linux.alib= aba.com Link: https://syzkaller.appspot.com/bug?extid=3D016d861797fd718491a8 Reported-by: syzbot+016d861797fd718491a8@syzkaller.appspotmail.com Tested-by: syzbot+016d861797fd718491a8@syzkaller.appspotmail.com Signed-off-by: Gao Xiang Signed-off-by: Changjian Liu --- fs/erofs/inode.c | 12 ++++++++---- fs/erofs/internal.h | 2 -- fs/erofs/zmap.c | 18 ------------------ 3 files changed, 8 insertions(+), 24 deletions(-) diff --git a/fs/erofs/inode.c b/fs/erofs/inode.c index 3cbef6318b7b..484572504b4d 100644 --- a/fs/erofs/inode.c +++ b/fs/erofs/inode.c @@ -280,11 +280,15 @@ static int erofs_fill_inode(struct inode *inode) } =20 if (erofs_inode_is_data_compressed(vi->datalayout)) { +#ifdef CONFIG_EROFS_FS_ZIP if (!erofs_is_fscache_mode(inode->i_sb) && - inode->i_sb->s_blocksize_bits =3D=3D PAGE_SHIFT) - err =3D z_erofs_fill_inode(inode); - else - err =3D -EOPNOTSUPP; + inode->i_sb->s_blocksize_bits =3D=3D PAGE_SHIFT) { + inode->i_mapping->a_ops =3D &z_erofs_aops; + err =3D 0; + goto out_unlock; + } +#endif + err =3D -EOPNOTSUPP; goto out_unlock; } inode->i_mapping->a_ops =3D &erofs_raw_access_aops; diff --git a/fs/erofs/internal.h b/fs/erofs/internal.h index 126970932805..1a4d08a93339 100644 --- a/fs/erofs/internal.h +++ b/fs/erofs/internal.h @@ -423,12 +423,10 @@ enum { extern const struct iomap_ops z_erofs_iomap_report_ops; =20 #ifdef CONFIG_EROFS_FS_ZIP -int z_erofs_fill_inode(struct inode *inode); int z_erofs_map_blocks_iter(struct inode *inode, struct erofs_map_blocks *map, int flags); #else -static inline int z_erofs_fill_inode(struct inode *inode) { return -EOPNOT= SUPP; } static inline int z_erofs_map_blocks_iter(struct inode *inode, struct erofs_map_blocks *map, int flags) diff --git a/fs/erofs/zmap.c b/fs/erofs/zmap.c index d2d7fe826091..ff84533da0c4 100644 --- a/fs/erofs/zmap.c +++ b/fs/erofs/zmap.c @@ -7,24 +7,6 @@ #include #include =20 -int z_erofs_fill_inode(struct inode *inode) -{ - struct erofs_inode *const vi =3D EROFS_I(inode); - struct erofs_sb_info *sbi =3D EROFS_SB(inode->i_sb); - - if (!erofs_sb_has_big_pcluster(sbi) && - !erofs_sb_has_ztailpacking(sbi) && !erofs_sb_has_fragments(sb= i) && - vi->datalayout =3D=3D EROFS_INODE_COMPRESSED_FULL) { - vi->z_advise =3D 0; - vi->z_algorithmtype[0] =3D 0; - vi->z_algorithmtype[1] =3D 0; - vi->z_logical_clusterbits =3D inode->i_sb->s_blocksize_bits; - set_bit(EROFS_I_Z_INITED_BIT, &vi->flags); - } - inode->i_mapping->a_ops =3D &z_erofs_aops; - return 0; -} - struct z_erofs_maprecorder { struct inode *inode; struct erofs_map_blocks *map; --=20 2.43.0