From nobody Thu Sep 11 19:36:26 2025 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 71D25C64ED6 for ; Thu, 16 Feb 2023 13:53:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229955AbjBPNxx (ORCPT ); Thu, 16 Feb 2023 08:53:53 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:34120 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229670AbjBPNxm (ORCPT ); Thu, 16 Feb 2023 08:53:42 -0500 Received: from APC01-SG2-obe.outbound.protection.outlook.com (mail-sgaapc01on2128.outbound.protection.outlook.com [40.107.215.128]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 963F53B21B for ; Thu, 16 Feb 2023 05:53:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=GNWORg8zY7mWkd4VX2DA1u5tbVJ/0lobP/tjxvKkwoebTjaYeC42/VbK8Dc+AJeHkjHM66GYy3GCemy9m6S4QGqxtW/BJ9bKGnbsMLJIiYFTmNT3aMBdm2lokosIVNnMWiXWDTzY7h9GL92/WdlrKveX1Fz8iKOjeB3OtFggdRY5yLiIm/cdbHTvv84gxIZ/J4k0Xpv21AogSjnYcyzXomzoGlDahKD17Hn0jKJWwHU1s3KZkXFZsxX48DUjn8NQvI2YLypKsHyGbPI8FIiw0fBZ4xRBiZrWfGpdTnLDGwDrbpEpRyrztJ4SJVN3oeG+9uhkDfPTdHENcHkM8fnlfw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=V94TgpZL5DGBpJzuMNrBd+XPKq6hMNFbxr/kxUJI0iU=; b=BSo5ZfS2ZABms23WA2CMQ2ZxII6LtV/W44i11Zy6UWBzUEbcRDyEarh89normTwG8jGHlh8VifbB/3HPiXEQyYTO6cURu7sBdwCQthF+xtW9cV++e19Sjpu1YGrL4UAIHFvM++HZ6zbbJ9IOsF0wV9eGiNDs//0kgRnyJ16k2i7HjWIs6x3taP/fji+SqXIo/gynSr9pI++CYsU8zsCT1uNQsE7SZN7ltvbCiFS9hgiQHnDJUG3JC5BANxOu4o7Jizj1fmKEqiYmTio1x0fyIssdKZ4omsWJnibaNUx2811sscYys7s0Oqqfz9fqROzUJrRrSDHJXsEi+hoplzb+Rg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=vivo.com; dmarc=pass action=none header.from=vivo.com; dkim=pass header.d=vivo.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=vivo.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=V94TgpZL5DGBpJzuMNrBd+XPKq6hMNFbxr/kxUJI0iU=; b=fR2McXr/jzLlh2A+WEsPzREmEtkEk38HAeKQf8d1yib0lYyhjuRxHRRiJnruOu//k3JKXShvoLBpaQDGlujvH2A7ZyR+x3l2GQw0uTngjFW4nXrKfybRF1VcNZqI07cSn2V491giTluN7fLv6n1fEgCrFfllodHVkyU99Q6/VQvT5A1FP/bDme3oOC2B9vQOdvXQo60i/RZKqxu9inQfM5p61cdlhUbq8N71BkFTlG6iikR7nyxeOi2wpsh5v99OHm6y2im/hHdjr66Xut8qOZVnhfcIcD3tBkGRGAwLxWGZiC80+1Is6pstvnw2sUvklDy4/spqAzPTy1SNhWQ2PQ== Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=vivo.com; Received: from TYZPR06MB5275.apcprd06.prod.outlook.com (2603:1096:400:1f5::6) by PSAPR06MB4102.apcprd06.prod.outlook.com (2603:1096:301:3b::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.6111.12; Thu, 16 Feb 2023 13:53:34 +0000 Received: from TYZPR06MB5275.apcprd06.prod.outlook.com ([fe80::a2c6:4a08:7779:5190]) by TYZPR06MB5275.apcprd06.prod.outlook.com ([fe80::a2c6:4a08:7779:5190%3]) with mapi id 15.20.6111.009; Thu, 16 Feb 2023 13:53:33 +0000 From: Yangtao Li To: jaegeuk@kernel.org, chao@kernel.org Cc: linux-f2fs-devel@lists.sourceforge.net, linux-kernel@vger.kernel.org, Yangtao Li Subject: [PATCH] f2fs: convert to use bitmap API Date: Thu, 16 Feb 2023 21:53:24 +0800 Message-Id: <20230216135324.18406-1-frank.li@vivo.com> X-Mailer: git-send-email 2.35.1 Content-Transfer-Encoding: quoted-printable X-ClientProxiedBy: SI2PR06CA0014.apcprd06.prod.outlook.com (2603:1096:4:186::11) To TYZPR06MB5275.apcprd06.prod.outlook.com (2603:1096:400:1f5::6) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: TYZPR06MB5275:EE_|PSAPR06MB4102:EE_ X-MS-Office365-Filtering-Correlation-Id: 8094fec7-272c-4a8d-cedc-08db102531b1 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: ljQlXtqjPjRTtLAp7PaBQzQmT4izjUt5YOcG1ngCvmr6D9WOkHad9zJdMWLlB1+Ta7MvUS+hkVjk+u/Dp+0/yWISxSsmKr7WVDjiqrGBCx0uGkPNHwIRiVzlt/vHZ6sAS0Xxy5oW4I3ouPDXrCvYJuisNmiJx1aPjqYgl9+jAXZnH0Csd0xcJ9dkPdsOy+q+jYzcabbqG5jNXyp+/Ppldo5CPHL+EsUE6wmdGr8fh8Eso/dyDJo5rnQZdlo1gUQBbPRolQeOZnw5iWqyH+JPFm7gi2IDSO04ET0+7/XwyboYaxtgnAHS5576ttksP14CL72cwDqUazYXYZ1ruLISA89x5WS4ejDtio5pKmS23qWUGErdXA3zZKyHRa2QzN+Mw1aH/QTHukgATc/E+uVIhkxzsiBVH4fkeXw74WHp0cESyMLnkdhzRHKJUgrLtwIk+I3e/cKC1AcM/GWwSKiiBaOpUrOhndMRMZUZ9LR0yZWvneBNUyqyfDda6z/FkBL6GxVijsmXm4/2kG0rReuB9fxVMo7Q8xDxTHeYozNgzNV+QxNMjbN/2VGyOfwlGoRY32+y0mat6ovIS80KpYKeDXdppB/DjxB7/TZc7tnhpyRpBS6GupXPO3nFndA1sMkF1HhYNVPtEaG3BrP539MSGVH/FQUwQE7DcklqWg6GrtJQVzAGmVpGcFu0v/6hT0AtjFVxYKClKBYFxhV6mY1IVw== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:TYZPR06MB5275.apcprd06.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230025)(4636009)(376002)(136003)(396003)(366004)(346002)(39860400002)(451199018)(86362001)(36756003)(2616005)(186003)(6512007)(6506007)(52116002)(26005)(83380400001)(2906002)(66946007)(1076003)(8676002)(6486002)(66476007)(4326008)(41300700001)(66556008)(5660300002)(478600001)(107886003)(6666004)(8936002)(30864003)(38100700002)(38350700002)(316002);DIR:OUT;SFP:1102; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?hA4T35q5MZdkN3RzlWbFwvGh/WkEqLQh8/jskfEbCqGSSHqrOoWNg2jISwg/?= =?us-ascii?Q?E+9KxJcAlFz5fUI5EO89YNClztH4vtIiXme9wpREfL1w1CFyH1M8WLzWxtBo?= =?us-ascii?Q?qDAvJXg1ODEz2dGvOT45QqaPFVj2N14odIItX1mA+g+vmX60ED1GxG/N32l2?= =?us-ascii?Q?FxIcnIPt8Hv9d6PkmmvQ0lfyi6ve0lk113VkF4OElG4O2kwPK0NSVq/nJJQg?= =?us-ascii?Q?AK8eLBQb+zEsRS47nZ9+chD1NF4bDrMCVcqzXn1GTUdxVlB7Hyh+sbvfz3YP?= =?us-ascii?Q?xBUJuFVm/q0B8NkOmmMQxUHdSXmVxtVz9BUT0K4n+LYDbmU5sRs+gvYdHBYJ?= =?us-ascii?Q?cQLsxBu+UCdwIS0MQzBWjBHlDsiXivQSnX8bVwLJj1zDng7B3cUJ+xXGhfxz?= =?us-ascii?Q?uoixjR5RhJHZeaGTIw9jhq61dMUz4JTRnT3zCxCzaXAlmwHnins8E1ET1/Hl?= =?us-ascii?Q?RF5nd2SlZ3PJJmies+1QJez4pPDlfI8xjVUrmTigqZKG7WGHLJ1619RNjAde?= =?us-ascii?Q?wzutfK2SCbvW4UcDwMwL8mm4gp50KpotnXrBsefTJNmrxNLO/ydsWT6Pmj27?= =?us-ascii?Q?YSoJorg2QZdi+d1mRZoC2IxLdxmPwOsYnTIRxiDbdX7PAE8G+UPYNNdmV/Te?= =?us-ascii?Q?mPKuJJXM6xJtto6faWH7RiIIIuRsf1cvCaHfIETOcWOXpI1qzpxKWtjF6vQc?= =?us-ascii?Q?QkNWxe/lwksBthd/4NEOYPYX3dXWtNdUECfm3MtGWyNl/ziCcz9rIxWCHmzL?= =?us-ascii?Q?OIpLZHFznVl0vxrpguzPTThD3pVd1Wq/eKLGD6JeJAUtiRfDiZGSk5w5y3Nm?= =?us-ascii?Q?a6+/FPJb+hM2/qhnKicAU2eTVVVzVtkCGlEwyjdFd5FnRr2MOajhhFMaKrYa?= =?us-ascii?Q?wrflbwK2qO1wvZ2pchdB0liEhb0Isi8iCx4pa5fJ1z8r2TnabQecuWYC+pCo?= =?us-ascii?Q?DAXPcpmlE8LQqrO5Zk6zIi8UJEt0il3pif3Frw5W5H+RQBHBdJuT/HyXDjvt?= =?us-ascii?Q?BRjEXTTJV/BFjTpPh8pvVwpItyghBpVbNhbpq3EGzc0MM1i1wXIjLmTat2Zr?= =?us-ascii?Q?j6e5Yy9LiC8aaO82Bs69/IfJygvXvzMIc/3Za1PB7GpKACVaJ0Ohf5hzsMEF?= =?us-ascii?Q?XySwssRkk4SHAs/xoJ9U38LODE68tTtLrDTaAT2HbFMAr4yJCsdriJ83it7i?= =?us-ascii?Q?HWCaBMk4+ZSwRc7+vLNlPB1exfE8K5S4pssH6Qw3c5GP2w7EwEYyrxuZzpFZ?= =?us-ascii?Q?jtoMMHhywiXvlR/qB58O4fKDqAnW+8Uve54f2mC3pRk8RpPxfqQ9LiK2HI7v?= =?us-ascii?Q?UI9axJ46KecWYx2cENNyFgiToOvOs3jfNIH/jTjBbK3EhnVY5VdKmEZPPcUP?= =?us-ascii?Q?MsgP8MH5v4T6018E6t/l51s3qigPOkdUhtKejTR9qTYuwFETPF9xyQeBudet?= =?us-ascii?Q?Vi3tM91OEG0+RpDh1z2Su08iL1BGLt8i8KwOSxzO7tGK4fdr+LHvei33IjMX?= =?us-ascii?Q?1JkofofhT5MWSrVMkpDnwjRZ54oP1KeuJeTRZm/t533zUJU5JBhry3ntnyG2?= =?us-ascii?Q?+H3SAFyTN5pM2Z0rKgurI/BUE3co+b+DRoodpl1L?= X-OriginatorOrg: vivo.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8094fec7-272c-4a8d-cedc-08db102531b1 X-MS-Exchange-CrossTenant-AuthSource: TYZPR06MB5275.apcprd06.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Feb 2023 13:53:33.8658 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 923e42dc-48d5-4cbe-b582-1a797a6412ed X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: B4EQ2uyKgfjmS9Sz3KbO9jhw3rWMY9P+QaKp1+IQBiBcBc1hzsHv7P6Zu+6gXPbqAgMmYmy6JZhcX2l/higPUA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: PSAPR06MB4102 Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="utf-8" Let's use BIT() and GENMASK() instead of open it. Signed-off-by: Yangtao Li Reviewed-by: Chao Yu --- fs/f2fs/checkpoint.c | 2 +- fs/f2fs/compress.c | 4 ++-- fs/f2fs/data.c | 12 ++++++------ fs/f2fs/dir.c | 2 +- fs/f2fs/f2fs.h | 26 +++++++++++++------------- fs/f2fs/file.c | 2 +- fs/f2fs/inode.c | 4 ++-- fs/f2fs/node.h | 20 +++++++++----------- fs/f2fs/super.c | 16 ++++++++-------- fs/f2fs/sysfs.c | 2 +- fs/f2fs/verity.c | 2 +- include/linux/f2fs_fs.h | 9 ++++----- 12 files changed, 49 insertions(+), 52 deletions(-) diff --git a/fs/f2fs/checkpoint.c b/fs/f2fs/checkpoint.c index 1369ec892a2c..faabdb31fbe4 100644 --- a/fs/f2fs/checkpoint.c +++ b/fs/f2fs/checkpoint.c @@ -979,7 +979,7 @@ int f2fs_get_valid_checkpoint(struct f2fs_sb_info *sbi) =20 cp_blk_no =3D le32_to_cpu(fsb->cp_blkaddr); if (cur_page =3D=3D cp2) - cp_blk_no +=3D 1 << le32_to_cpu(fsb->log_blocks_per_seg); + cp_blk_no +=3D BIT(le32_to_cpu(fsb->log_blocks_per_seg)); =20 for (i =3D 1; i < cp_blks; i++) { void *sit_bitmap_ptr; diff --git a/fs/f2fs/compress.c b/fs/f2fs/compress.c index b40dec3d7f79..93fec1d37899 100644 --- a/fs/f2fs/compress.c +++ b/fs/f2fs/compress.c @@ -670,7 +670,7 @@ static int f2fs_compress_pages(struct compress_ctx *cc) =20 cc->cbuf->clen =3D cpu_to_le32(cc->clen); =20 - if (fi->i_compress_flag & 1 << COMPRESS_CHKSUM) + if (fi->i_compress_flag & BIT(COMPRESS_CHKSUM)) chksum =3D f2fs_crc32(F2FS_I_SB(cc->inode), cc->cbuf->cdata, cc->clen); cc->cbuf->chksum =3D cpu_to_le32(chksum); @@ -761,7 +761,7 @@ void f2fs_decompress_cluster(struct decompress_io_ctx *= dic, bool in_task) =20 ret =3D cops->decompress_pages(dic); =20 - if (!ret && (fi->i_compress_flag & 1 << COMPRESS_CHKSUM)) { + if (!ret && (fi->i_compress_flag & BIT(COMPRESS_CHKSUM))) { u32 provided =3D le32_to_cpu(dic->cbuf->chksum); u32 calculated =3D f2fs_crc32(sbi, dic->cbuf->cdata, dic->clen); =20 diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 28e09682b056..61beae459a9c 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -93,17 +93,17 @@ static enum count_type __read_io_type(struct page *page) /* postprocessing steps for read bios */ enum bio_post_read_step { #ifdef CONFIG_FS_ENCRYPTION - STEP_DECRYPT =3D 1 << 0, + STEP_DECRYPT =3D BIT(0), #else STEP_DECRYPT =3D 0, /* compile out the decryption-related code */ #endif #ifdef CONFIG_F2FS_FS_COMPRESSION - STEP_DECOMPRESS =3D 1 << 1, + STEP_DECOMPRESS =3D BIT(1), #else STEP_DECOMPRESS =3D 0, /* compile out the decompression-related code */ #endif #ifdef CONFIG_FS_VERITY - STEP_VERITY =3D 1 << 2, + STEP_VERITY =3D BIT(2), #else STEP_VERITY =3D 0, /* compile out the verity-related code */ #endif @@ -420,7 +420,7 @@ int f2fs_target_device_index(struct f2fs_sb_info *sbi, = block_t blkaddr) =20 static blk_opf_t f2fs_io_flags(struct f2fs_io_info *fio) { - unsigned int temp_mask =3D (1 << NR_TEMP_TYPE) - 1; + unsigned int temp_mask =3D GENMASK(NR_TEMP_TYPE - 1, 0); unsigned int fua_flag, meta_flag, io_flag; blk_opf_t op_flags =3D 0; =20 @@ -442,9 +442,9 @@ static blk_opf_t f2fs_io_flags(struct f2fs_io_info *fio) * 5 | 4 | 3 | 2 | 1 | 0 | * Cold | Warm | Hot | Cold | Warm | Hot | */ - if ((1 << fio->temp) & meta_flag) + if (BIT(fio->temp) & meta_flag) op_flags |=3D REQ_META; - if ((1 << fio->temp) & fua_flag) + if (BIT(fio->temp) & fua_flag) op_flags |=3D REQ_FUA; return op_flags; } diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c index 9ccdbe120425..73c338db5808 100644 --- a/fs/f2fs/dir.c +++ b/fs/f2fs/dir.c @@ -29,7 +29,7 @@ static unsigned long dir_blocks(struct inode *inode) static unsigned int dir_buckets(unsigned int level, int dir_level) { if (level + dir_level < MAX_DIR_HASH_DEPTH / 2) - return 1 << (level + dir_level); + return BIT(level + dir_level); else return MAX_DIR_BUCKETS; } diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 21596e0266ba..dc5b25a6ac7a 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -65,7 +65,7 @@ enum { }; =20 #ifdef CONFIG_F2FS_FAULT_INJECTION -#define F2FS_ALL_FAULT_TYPE ((1 << FAULT_MAX) - 1) +#define F2FS_ALL_FAULT_TYPE (GENMASK(FAULT_MAX - 1, 0)) =20 struct f2fs_fault_info { atomic_t inject_ops; @@ -74,7 +74,7 @@ struct f2fs_fault_info { }; =20 extern const char *f2fs_fault_name[FAULT_MAX]; -#define IS_FAULT_SET(fi, type) ((fi)->inject_type & (1 << (type))) +#define IS_FAULT_SET(fi, type) ((fi)->inject_type & BIT(type)) #endif =20 /* @@ -1436,7 +1436,7 @@ static inline void set_page_private_##name(struct pag= e *page) \ static inline void clear_page_private_##name(struct page *page) \ { \ clear_bit(PAGE_PRIVATE_##flagname, &page_private(page)); \ - if (page_private(page) =3D=3D 1 << PAGE_PRIVATE_NOT_POINTER) { \ + if (page_private(page) =3D=3D BIT(PAGE_PRIVATE_NOT_POINTER)) { \ set_page_private(page, 0); \ if (PagePrivate(page)) { \ ClearPagePrivate(page); \ @@ -1482,8 +1482,8 @@ static inline void set_page_private_data(struct page = *page, unsigned long data) =20 static inline void clear_page_private_data(struct page *page) { - page_private(page) &=3D (1 << PAGE_PRIVATE_MAX) - 1; - if (page_private(page) =3D=3D 1 << PAGE_PRIVATE_NOT_POINTER) { + page_private(page) &=3D GENMASK(PAGE_PRIVATE_MAX - 1, 0); + if (page_private(page) =3D=3D BIT(PAGE_PRIVATE_NOT_POINTER)) { set_page_private(page, 0); if (PagePrivate(page)) { ClearPagePrivate(page); @@ -2892,7 +2892,7 @@ static inline int f2fs_test_bit(unsigned int nr, char= *addr) int mask; =20 addr +=3D (nr >> 3); - mask =3D 1 << (7 - (nr & 0x07)); + mask =3D BIT(7 - (nr & 0x07)); return mask & *addr; } =20 @@ -2901,7 +2901,7 @@ static inline void f2fs_set_bit(unsigned int nr, char= *addr) int mask; =20 addr +=3D (nr >> 3); - mask =3D 1 << (7 - (nr & 0x07)); + mask =3D BIT(7 - (nr & 0x07)); *addr |=3D mask; } =20 @@ -2910,7 +2910,7 @@ static inline void f2fs_clear_bit(unsigned int nr, ch= ar *addr) int mask; =20 addr +=3D (nr >> 3); - mask =3D 1 << (7 - (nr & 0x07)); + mask =3D BIT(7 - (nr & 0x07)); *addr &=3D ~mask; } =20 @@ -2920,7 +2920,7 @@ static inline int f2fs_test_and_set_bit(unsigned int = nr, char *addr) int ret; =20 addr +=3D (nr >> 3); - mask =3D 1 << (7 - (nr & 0x07)); + mask =3D BIT(7 - (nr & 0x07)); ret =3D mask & *addr; *addr |=3D mask; return ret; @@ -2932,7 +2932,7 @@ static inline int f2fs_test_and_clear_bit(unsigned in= t nr, char *addr) int ret; =20 addr +=3D (nr >> 3); - mask =3D 1 << (7 - (nr & 0x07)); + mask =3D BIT(7 - (nr & 0x07)); ret =3D mask & *addr; *addr &=3D ~mask; return ret; @@ -2943,7 +2943,7 @@ static inline void f2fs_change_bit(unsigned int nr, c= har *addr) int mask; =20 addr +=3D (nr >> 3); - mask =3D 1 << (7 - (nr & 0x07)); + mask =3D BIT(7 - (nr & 0x07)); *addr ^=3D mask; } =20 @@ -4354,9 +4354,9 @@ static inline int set_compress_context(struct inode *= inode) F2FS_OPTION(sbi).compress_log_size; F2FS_I(inode)->i_compress_flag =3D F2FS_OPTION(sbi).compress_chksum ? - 1 << COMPRESS_CHKSUM : 0; + BIT(COMPRESS_CHKSUM) : 0; F2FS_I(inode)->i_cluster_size =3D - 1 << F2FS_I(inode)->i_log_cluster_size; + BIT(F2FS_I(inode)->i_log_cluster_size); if ((F2FS_I(inode)->i_compress_algorithm =3D=3D COMPRESS_LZ4 || F2FS_I(inode)->i_compress_algorithm =3D=3D COMPRESS_ZSTD) && F2FS_OPTION(sbi).compress_level) diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index ca1720fc1187..c50a69c0b964 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -3964,7 +3964,7 @@ static int f2fs_ioc_set_compress_option(struct file *= filp, unsigned long arg) =20 F2FS_I(inode)->i_compress_algorithm =3D option.algorithm; F2FS_I(inode)->i_log_cluster_size =3D option.log_cluster_size; - F2FS_I(inode)->i_cluster_size =3D 1 << option.log_cluster_size; + F2FS_I(inode)->i_cluster_size =3D BIT(option.log_cluster_size); f2fs_mark_inode_dirty_sync(inode, true); =20 if (!f2fs_is_compress_backend_ready(inode)) diff --git a/fs/f2fs/inode.c b/fs/f2fs/inode.c index 7d2e2c0dba65..bb5b365a195d 100644 --- a/fs/f2fs/inode.c +++ b/fs/f2fs/inode.c @@ -454,8 +454,8 @@ static int do_read_inode(struct inode *inode) fi->i_compress_level =3D compress_flag >> COMPRESS_LEVEL_OFFSET; fi->i_compress_flag =3D compress_flag & - (BIT(COMPRESS_LEVEL_OFFSET) - 1); - fi->i_cluster_size =3D 1 << fi->i_log_cluster_size; + GENMASK(COMPRESS_LEVEL_OFFSET - 1, 0); + fi->i_cluster_size =3D BIT(fi->i_log_cluster_size); set_inode_flag(inode, FI_COMPRESSED_FILE); } } diff --git a/fs/f2fs/node.h b/fs/f2fs/node.h index 99454d46a939..906fb67a99da 100644 --- a/fs/f2fs/node.h +++ b/fs/f2fs/node.h @@ -93,17 +93,15 @@ static inline void copy_node_info(struct node_info *dst, static inline void set_nat_flag(struct nat_entry *ne, unsigned int type, bool set) { - unsigned char mask =3D 0x01 << type; if (set) - ne->ni.flag |=3D mask; + ne->ni.flag |=3D BIT(type); else - ne->ni.flag &=3D ~mask; + ne->ni.flag &=3D ~BIT(type); } =20 static inline bool get_nat_flag(struct nat_entry *ne, unsigned int type) { - unsigned char mask =3D 0x01 << type; - return ne->ni.flag & mask; + return ne->ni.flag & BIT(type); } =20 static inline void nat_reset_flag(struct nat_entry *ne) @@ -225,7 +223,7 @@ static inline pgoff_t next_nat_addr(struct f2fs_sb_info= *sbi, struct f2fs_nm_info *nm_i =3D NM_I(sbi); =20 block_addr -=3D nm_i->nat_blkaddr; - block_addr ^=3D 1 << sbi->log_blocks_per_seg; + block_addr ^=3D BIT(sbi->log_blocks_per_seg); return block_addr + nm_i->nat_blkaddr; } =20 @@ -395,7 +393,7 @@ static inline nid_t get_nid(struct page *p, int off, bo= ol i) static inline int is_node(struct page *page, int type) { struct f2fs_node *rn =3D F2FS_NODE(page); - return le32_to_cpu(rn->footer.flag) & (1 << type); + return le32_to_cpu(rn->footer.flag) & BIT(type); } =20 #define is_cold_node(page) is_node(page, COLD_BIT_SHIFT) @@ -408,9 +406,9 @@ static inline void set_cold_node(struct page *page, boo= l is_dir) unsigned int flag =3D le32_to_cpu(rn->footer.flag); =20 if (is_dir) - flag &=3D ~(0x1 << COLD_BIT_SHIFT); + flag &=3D ~BIT(COLD_BIT_SHIFT); else - flag |=3D (0x1 << COLD_BIT_SHIFT); + flag |=3D BIT(COLD_BIT_SHIFT); rn->footer.flag =3D cpu_to_le32(flag); } =20 @@ -419,9 +417,9 @@ static inline void set_mark(struct page *page, int mark= , int type) struct f2fs_node *rn =3D F2FS_NODE(page); unsigned int flag =3D le32_to_cpu(rn->footer.flag); if (mark) - flag |=3D (0x1 << type); + flag |=3D BIT(type); else - flag &=3D ~(0x1 << type); + flag &=3D ~BIT(type); rn->footer.flag =3D cpu_to_le32(flag); =20 #ifdef CONFIG_F2FS_CHECK_FS diff --git a/fs/f2fs/super.c b/fs/f2fs/super.c index aa55dc12aff2..6fabd6330b03 100644 --- a/fs/f2fs/super.c +++ b/fs/f2fs/super.c @@ -886,8 +886,8 @@ static int parse_options(struct super_block *sb, char *= options, bool is_remount) if (args->from && match_int(args, &arg)) return -EINVAL; if (arg <=3D 0 || arg > __ilog2_u32(BIO_MAX_VECS)) { - f2fs_warn(sbi, "Not support %d, larger than %d", - 1 << arg, BIO_MAX_VECS); + f2fs_warn(sbi, "Not support %ld, larger than %d", + BIT(arg), BIO_MAX_VECS); return -EINVAL; } F2FS_OPTION(sbi).write_io_size_bits =3D arg; @@ -1316,7 +1316,7 @@ static int parse_options(struct super_block *sb, char= *options, bool is_remount) #endif =20 if (F2FS_IO_SIZE_BITS(sbi) && !f2fs_lfs_mode(sbi)) { - f2fs_err(sbi, "Should set mode=3Dlfs with %uKB-sized IO", + f2fs_err(sbi, "Should set mode=3Dlfs with %luKB-sized IO", F2FS_IO_SIZE_KB(sbi)); return -EINVAL; } @@ -3354,7 +3354,7 @@ static int sanity_check_raw_super(struct f2fs_sb_info= *sbi, total_sections =3D le32_to_cpu(raw_super->section_count); =20 /* blocks_per_seg should be 512, given the above check */ - blocks_per_seg =3D 1 << le32_to_cpu(raw_super->log_blocks_per_seg); + blocks_per_seg =3D BIT(le32_to_cpu(raw_super->log_blocks_per_seg)); =20 if (segment_count > F2FS_MAX_SEGMENT || segment_count < F2FS_MIN_SEGMENTS) { @@ -3623,9 +3623,9 @@ static void init_sb_info(struct f2fs_sb_info *sbi) sbi->log_sectors_per_block =3D le32_to_cpu(raw_super->log_sectors_per_block); sbi->log_blocksize =3D le32_to_cpu(raw_super->log_blocksize); - sbi->blocksize =3D 1 << sbi->log_blocksize; + sbi->blocksize =3D BIT(sbi->log_blocksize); sbi->log_blocks_per_seg =3D le32_to_cpu(raw_super->log_blocks_per_seg); - sbi->blocks_per_seg =3D 1 << sbi->log_blocks_per_seg; + sbi->blocks_per_seg =3D BIT(sbi->log_blocks_per_seg); sbi->segs_per_sec =3D le32_to_cpu(raw_super->segs_per_sec); sbi->secs_per_zone =3D le32_to_cpu(raw_super->secs_per_zone); sbi->total_sections =3D le32_to_cpu(raw_super->section_count); @@ -3881,7 +3881,7 @@ void f2fs_handle_stop(struct f2fs_sb_info *sbi, unsig= ned char reason) =20 f2fs_down_write(&sbi->sb_lock); =20 - if (raw_super->s_stop_reason[reason] < ((1 << BITS_PER_BYTE) - 1)) + if (raw_super->s_stop_reason[reason] < GENMASK(BITS_PER_BYTE - 1, 0)) raw_super->s_stop_reason[reason]++; =20 err =3D f2fs_commit_super(sbi, false); @@ -4031,7 +4031,7 @@ static int f2fs_scan_devices(struct f2fs_sb_info *sbi) FDEV(i).start_blk, FDEV(i).end_blk); } f2fs_info(sbi, - "IO Block Size: %8d KB", F2FS_IO_SIZE_KB(sbi)); + "IO Block Size: %8ld KB", F2FS_IO_SIZE_KB(sbi)); return 0; } =20 diff --git a/fs/f2fs/sysfs.c b/fs/f2fs/sysfs.c index 0b19163c90d4..e715207e990e 100644 --- a/fs/f2fs/sysfs.c +++ b/fs/f2fs/sysfs.c @@ -452,7 +452,7 @@ static ssize_t __sbi_store(struct f2fs_attr *a, if (ret < 0) return ret; #ifdef CONFIG_F2FS_FAULT_INJECTION - if (a->struct_type =3D=3D FAULT_INFO_TYPE && t >=3D (1 << FAULT_MAX)) + if (a->struct_type =3D=3D FAULT_INFO_TYPE && t >=3D BIT(FAULT_MAX)) return -EINVAL; if (a->struct_type =3D=3D FAULT_INFO_RATE && t >=3D UINT_MAX) return -EINVAL; diff --git a/fs/f2fs/verity.c b/fs/f2fs/verity.c index 3f4f3295f1c6..9e005f15fafe 100644 --- a/fs/f2fs/verity.c +++ b/fs/f2fs/verity.c @@ -280,7 +280,7 @@ static int f2fs_write_merkle_tree_block(struct inode *i= node, const void *buf, { loff_t pos =3D f2fs_verity_metadata_pos(inode) + (index << log_blocksize); =20 - return pagecache_write(inode, buf, 1 << log_blocksize, pos); + return pagecache_write(inode, buf, BIT(log_blocksize), pos); } =20 const struct fsverity_operations f2fs_verityops =3D { diff --git a/include/linux/f2fs_fs.h b/include/linux/f2fs_fs.h index 1701f25117ea..881eb9321967 100644 --- a/include/linux/f2fs_fs.h +++ b/include/linux/f2fs_fs.h @@ -40,9 +40,8 @@ =20 #define F2FS_ENC_UTF8_12_1 1 =20 -#define F2FS_IO_SIZE(sbi) (1 << F2FS_OPTION(sbi).write_io_size_bits) /* Bl= ocks */ -#define F2FS_IO_SIZE_KB(sbi) (1 << (F2FS_OPTION(sbi).write_io_size_bits + = 2)) /* KB */ -#define F2FS_IO_SIZE_BYTES(sbi) (1 << (F2FS_OPTION(sbi).write_io_size_bits= + 12)) /* B */ +#define F2FS_IO_SIZE(sbi) BIT(F2FS_OPTION(sbi).write_io_size_bits) /* Bloc= ks */ +#define F2FS_IO_SIZE_KB(sbi) BIT(F2FS_OPTION(sbi).write_io_size_bits + 2) = /* KB */ #define F2FS_IO_SIZE_BITS(sbi) (F2FS_OPTION(sbi).write_io_size_bits) /* po= wer of 2 */ #define F2FS_IO_SIZE_MASK(sbi) (F2FS_IO_SIZE(sbi) - 1) #define F2FS_IO_ALIGNED(sbi) (F2FS_IO_SIZE(sbi) > 1) @@ -340,7 +339,7 @@ enum { OFFSET_BIT_SHIFT }; =20 -#define OFFSET_BIT_MASK (0x07) /* (0x01 << OFFSET_BIT_SHIFT) - 1 */ +#define OFFSET_BIT_MASK GENMASK(OFFSET_BIT_SHIFT - 1, 0) =20 struct node_footer { __le32 nid; /* node id */ @@ -545,7 +544,7 @@ typedef __le32 f2fs_hash_t; #define MAX_DIR_HASH_DEPTH 63 =20 /* MAX buckets in one level of dir */ -#define MAX_DIR_BUCKETS (1 << ((MAX_DIR_HASH_DEPTH / 2) - 1)) +#define MAX_DIR_BUCKETS BIT((MAX_DIR_HASH_DEPTH / 2) - 1) =20 /* * space utilization of regular dentry and inline dentry (w/o extra reserv= ation) --=20 2.25.1