From nobody Tue Feb 10 04:03:10 2026 Received: from out203-205-221-231.mail.qq.com (out203-205-221-231.mail.qq.com [203.205.221.231]) (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 3E015259CB9 for ; Thu, 18 Dec 2025 02:57:58 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=203.205.221.231 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766026685; cv=none; b=gApJBRSc8MWI3rB5TCJFSMouQ3OdiykNDhClnPtsfIz3uNkhKqnwBh7PKp8D/FbQDqtOz6aDnQy1shXB/ox3GAYb1BXtWmidy8MR9Fze6Y6e/ZrWaKoCIO2xpP2vwiUcsomTmzaiv/zuCUqgWOPrtfg95a2fDEy0wxkkErvsh/k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1766026685; c=relaxed/simple; bh=qB7fYTXOt5UNd6zYKN6xdgLh9IDRjzqfxpFce5JdWZ0=; h=Message-ID:From:To:Cc:Subject:Date:MIME-Version; b=SRFUT9FN4zSl/VKwrcq1WxSFQZpxtxyRm9x6H4rdvFBukg/CoNWBc+jLs37ANTFwTSIlN4AVEOp3ZMsb3KRN8EqeDNeI9PTVt1ddeCukEPqL8BJ7IxP3Qz+E5jyoS95ZjMhtqerY/YvDR5zRb9Im9wxi3XeGECxd2pQry0WbTUQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foxmail.com; spf=pass smtp.mailfrom=foxmail.com; dkim=pass (1024-bit key) header.d=foxmail.com header.i=@foxmail.com header.b=JMBo4t7D; arc=none smtp.client-ip=203.205.221.231 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=foxmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=foxmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (1024-bit key) header.d=foxmail.com header.i=@foxmail.com header.b="JMBo4t7D" DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=foxmail.com; s=s201512; t=1766026676; bh=f6WIlm3NQrzkDp5di3uVHEazPDVw9kDdxE9w8UfSzkk=; h=From:To:Cc:Subject:Date; b=JMBo4t7DFE5Yd9cZThAIdr12FKi//0wbIoXzhy1GUlDUWPbFgMNqxtKPbDW2l5pD+ aAcBOXgXo9GlTlE/YKFAdy4EkuPehDXPBk3b/pF/K0+Ow+3YG0iu9zZty/ArmCMek5 aj0z8wCQngXEKXCs5HXmCYmE/DL7ahoVgODaV29s= Received: from meizu-Precision-3660.meizu.com ([14.21.33.152]) by newxmesmtplogicsvrszc43-0.qq.com (NewEsmtp) with SMTP id E763CC66; Thu, 18 Dec 2025 10:57:54 +0800 X-QQ-mid: xmsmtpt1766026674tvgj5lsby Message-ID: X-QQ-XMAILINFO: N5bMR0CdcU9onGdfnkd+zu932qwd19dpw1wudSuxBnYliZqZrIiUWp0YfWEbi2 Nj3gvGo+Gt7ZIMBR2WYUNxM4njKVn/EjPZHzTBAzyDvppAaH6wLk/GpZscNP4QFsJCOhNEj27hw6 QepGc2wfkETv4zmgefR04kHQwq8CiFs7Vd2qg/fgT+lgbr6Ji6JnkG3dg8UOEWF1HJyMpdglDFAD p3zzsDQ+WN301Q4Ud9u7TFUDzuYDkt/EExBcQtgfLoi3KnC3h+1c5DWB+WvXnPLGYu6fUkVV2qCe VOuc0HRD7hFwbGb6jerAT+ebEwM9fMTyNVMTXrpN8ajY25DjbdelWn7PVLjLpuYuqht8+jasef5Q BsZT6/WwUUE1PEOtjVdLu0stITT9cEVfVwPjw09Kx8X3ePp7MVG7RkP82oZWwbemE8OhDtmnYchh NiakCqFhnitZJzsqCx2X6DHZrpYusuhFJxYQduLx3bg7B9gZp2cz2obJivbbgqNaZRNo8L5tb9tD lI+d1OTBPBCi6vEfQ2EoR3gUWfNhdIo9KjAFCKhfTTDqqy8h/GScjBAVn/k31o4pJ5l7t/Bptrfz 2NDq1mfKUw4zxr4NTYht+UlB9VEXaKqvPIcg60bXM8BMd1Jqcy1mcNzHV92LwvyGZz8Hzsp2dIKF MgFsuRqQtANZzOlqiVU4BOBsOrzPzsIjvcngqhKAVH+mHxG//7JJUq90lpAy/PJNi3C+xni2Pp0W o0JSoGKN3yZFQUIBy7fvazRpXBkDDLBPb//98xQ6N9uFAbfKhHUMmZtaOLBfa9rJ3FA5YzGTBzz2 KPnD6IaXbeQ0cZQ/DbsCYPuWJ1EQncENHr2P84C5m58JPYcg58qNqxvTEHHbpFurrpY8xgkE4O8z NvpWdgfh8pcmL0MDo0plRdHYvXU077ji4Cq9+nX4Ae+Yxy75P7ywuyo9eFo4suNFex+FGdS4CnvF SdPQeQJAb32jDVHHzS+/iwa+aNjp3g2TrkQgsJh4t6OoEA+kRcUJAbZvCGKBgndIIco0yP2WHj1u to5B9EZLSIvOikARkw6PZxbKbyMZ0UfUQtLxIlnTLBoYzhM9egsWC4FXN36jltz+Oyl8ztdY+jzH CG1yl5txHEeu/KmB3ZruAl6VCjvGwmcyyNjGHV56K7QxfmcXo= X-QQ-XMRINFO: NI4Ajvh11aEj8Xl/2s1/T8w= From: Yuwen Chen To: xiang@kernel.org Cc: chao@kernel.org, huyue2@coolpad.com, jefflexu@linux.alibaba.com, linux-erofs@lists.ozlabs.org, linux-kernel@vger.kernel.org, Yuwen Chen Subject: [PATCH v2] erofs: simplify the code using for_each_set_bit Date: Thu, 18 Dec 2025 10:57:53 +0800 X-OQ-MSGID: <20251218025753.2855196-1-ywen.chen@foxmail.com> X-Mailer: git-send-email 2.34.1 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 Content-Type: text/plain; charset="utf-8" When mounting the EROFS file system, it is necessary to check the available compression algorithms. At this time, the for_each_set_bit function can be used to simplify the code logic. Signed-off-by: Yuwen Chen --- v1 -> v2: - revert the modifications to the fs/erofs/internal.h fs/erofs/decompressor.c | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/fs/erofs/decompressor.c b/fs/erofs/decompressor.c index 2ec9b2bb628d6..be1e19b620523 100644 --- a/fs/erofs/decompressor.c +++ b/fs/erofs/decompressor.c @@ -405,7 +405,7 @@ int z_erofs_parse_cfgs(struct super_block *sb, struct e= rofs_super_block *dsb) { struct erofs_sb_info *sbi =3D EROFS_SB(sb); struct erofs_buf buf =3D __EROFS_BUF_INITIALIZER; - unsigned int algs, alg; + unsigned long algs, alg; erofs_off_t offset; int size, ret =3D 0; =20 @@ -423,13 +423,10 @@ int z_erofs_parse_cfgs(struct super_block *sb, struct= erofs_super_block *dsb) =20 erofs_init_metabuf(&buf, sb); offset =3D EROFS_SUPER_OFFSET + sbi->sb_size; - alg =3D 0; - for (algs =3D sbi->available_compr_algs; algs; algs >>=3D 1, ++alg) { + algs =3D sbi->available_compr_algs; + for_each_set_bit(alg, &algs, Z_EROFS_COMPRESSION_MAX) { void *data; =20 - if (!(algs & 1)) - continue; - data =3D erofs_read_metadata(sb, &buf, &offset, &size); if (IS_ERR(data)) { ret =3D PTR_ERR(data); @@ -438,7 +435,7 @@ int z_erofs_parse_cfgs(struct super_block *sb, struct e= rofs_super_block *dsb) =20 if (alg >=3D ARRAY_SIZE(erofs_decompressors) || !erofs_decompressors[alg].config) { - erofs_err(sb, "algorithm %d isn't enabled on this kernel", + erofs_err(sb, "algorithm %ld isn't enabled on this kernel", alg); ret =3D -EOPNOTSUPP; } else { --=20 2.34.1