f2fs: convert to use bitmap API
authorYangtao Li <frank.li@vivo.com>
Thu, 16 Feb 2023 13:53:24 +0000 (21:53 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Wed, 29 Mar 2023 22:17:37 +0000 (15:17 -0700)
Let's use BIT() and GENMASK() instead of open it.

Signed-off-by: Yangtao Li <frank.li@vivo.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/checkpoint.c
fs/f2fs/compress.c
fs/f2fs/data.c
fs/f2fs/dir.c
fs/f2fs/f2fs.h
fs/f2fs/file.c
fs/f2fs/inode.c
fs/f2fs/node.h
fs/f2fs/super.c
fs/f2fs/sysfs.c
include/linux/f2fs_fs.h

index 57e8ca187dc713cce096726d296ccc5d65d4c9d4..1e0164cde23d73e0e238743cde359efab779a6dd 100644 (file)
@@ -982,7 +982,7 @@ int f2fs_get_valid_checkpoint(struct f2fs_sb_info *sbi)
 
        cp_blk_no = le32_to_cpu(fsb->cp_blkaddr);
        if (cur_page == cp2)
-               cp_blk_no += 1 << le32_to_cpu(fsb->log_blocks_per_seg);
+               cp_blk_no += BIT(le32_to_cpu(fsb->log_blocks_per_seg));
 
        for (i = 1; i < cp_blks; i++) {
                void *sit_bitmap_ptr;
index b40dec3d7f7992de985035a22086d693684a001f..93fec1d378998ee3b998eddfdc484005958a9d19 100644 (file)
@@ -670,7 +670,7 @@ static int f2fs_compress_pages(struct compress_ctx *cc)
 
        cc->cbuf->clen = cpu_to_le32(cc->clen);
 
-       if (fi->i_compress_flag & 1 << COMPRESS_CHKSUM)
+       if (fi->i_compress_flag & BIT(COMPRESS_CHKSUM))
                chksum = f2fs_crc32(F2FS_I_SB(cc->inode),
                                        cc->cbuf->cdata, cc->clen);
        cc->cbuf->chksum = cpu_to_le32(chksum);
@@ -761,7 +761,7 @@ void f2fs_decompress_cluster(struct decompress_io_ctx *dic, bool in_task)
 
        ret = cops->decompress_pages(dic);
 
-       if (!ret && (fi->i_compress_flag & 1 << COMPRESS_CHKSUM)) {
+       if (!ret && (fi->i_compress_flag & BIT(COMPRESS_CHKSUM))) {
                u32 provided = le32_to_cpu(dic->cbuf->chksum);
                u32 calculated = f2fs_crc32(sbi, dic->cbuf->cdata, dic->clen);
 
index 06b552a0aba23cd9b8ce6fcf205ed16e9c5a1272..bf51e6e4eb64f4c015d7db2fc79302eb96545d79 100644 (file)
@@ -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    = 1 << 0,
+       STEP_DECRYPT    = BIT(0),
 #else
        STEP_DECRYPT    = 0,    /* compile out the decryption-related code */
 #endif
 #ifdef CONFIG_F2FS_FS_COMPRESSION
-       STEP_DECOMPRESS = 1 << 1,
+       STEP_DECOMPRESS = BIT(1),
 #else
        STEP_DECOMPRESS = 0,    /* compile out the decompression-related code */
 #endif
 #ifdef CONFIG_FS_VERITY
-       STEP_VERITY     = 1 << 2,
+       STEP_VERITY     = BIT(2),
 #else
        STEP_VERITY     = 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)
 
 static blk_opf_t f2fs_io_flags(struct f2fs_io_info *fio)
 {
-       unsigned int temp_mask = (1 << NR_TEMP_TYPE) - 1;
+       unsigned int temp_mask = GENMASK(NR_TEMP_TYPE - 1, 0);
        unsigned int fua_flag, meta_flag, io_flag;
        blk_opf_t op_flags = 0;
 
@@ -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 |= REQ_META;
-       if ((1 << fio->temp) & fua_flag)
+       if (BIT(fio->temp) & fua_flag)
                op_flags |= REQ_FUA;
        return op_flags;
 }
index 9ccdbe120425e8c5b212c66cba920acb1f737739..73c338db5808d3636c1d2a6c84b63a02ce8bb24e 100644 (file)
@@ -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;
 }
index 3c95c8b75a23ccdc87c876d24e80fdfbf41f4227..9c3ddebd28e3d759045249947d54b2e899fbe4a7 100644 (file)
@@ -65,7 +65,7 @@ enum {
 };
 
 #ifdef CONFIG_F2FS_FAULT_INJECTION
-#define F2FS_ALL_FAULT_TYPE            ((1 << FAULT_MAX) - 1)
+#define F2FS_ALL_FAULT_TYPE            (GENMASK(FAULT_MAX - 1, 0))
 
 struct f2fs_fault_info {
        atomic_t inject_ops;
@@ -74,7 +74,7 @@ struct f2fs_fault_info {
 };
 
 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
 
 /*
@@ -1436,7 +1436,7 @@ static inline void set_page_private_##name(struct page *page) \
 static inline void clear_page_private_##name(struct page *page) \
 { \
        clear_bit(PAGE_PRIVATE_##flagname, &page_private(page)); \
-       if (page_private(page) == 1 << PAGE_PRIVATE_NOT_POINTER) { \
+       if (page_private(page) == 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)
 
 static inline void clear_page_private_data(struct page *page)
 {
-       page_private(page) &= (1 << PAGE_PRIVATE_MAX) - 1;
-       if (page_private(page) == 1 << PAGE_PRIVATE_NOT_POINTER) {
+       page_private(page) &= GENMASK(PAGE_PRIVATE_MAX - 1, 0);
+       if (page_private(page) == 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;
 
        addr += (nr >> 3);
-       mask = 1 << (7 - (nr & 0x07));
+       mask = BIT(7 - (nr & 0x07));
        return mask & *addr;
 }
 
@@ -2901,7 +2901,7 @@ static inline void f2fs_set_bit(unsigned int nr, char *addr)
        int mask;
 
        addr += (nr >> 3);
-       mask = 1 << (7 - (nr & 0x07));
+       mask = BIT(7 - (nr & 0x07));
        *addr |= mask;
 }
 
@@ -2910,7 +2910,7 @@ static inline void f2fs_clear_bit(unsigned int nr, char *addr)
        int mask;
 
        addr += (nr >> 3);
-       mask = 1 << (7 - (nr & 0x07));
+       mask = BIT(7 - (nr & 0x07));
        *addr &= ~mask;
 }
 
@@ -2920,7 +2920,7 @@ static inline int f2fs_test_and_set_bit(unsigned int nr, char *addr)
        int ret;
 
        addr += (nr >> 3);
-       mask = 1 << (7 - (nr & 0x07));
+       mask = BIT(7 - (nr & 0x07));
        ret = mask & *addr;
        *addr |= mask;
        return ret;
@@ -2932,7 +2932,7 @@ static inline int f2fs_test_and_clear_bit(unsigned int nr, char *addr)
        int ret;
 
        addr += (nr >> 3);
-       mask = 1 << (7 - (nr & 0x07));
+       mask = BIT(7 - (nr & 0x07));
        ret = mask & *addr;
        *addr &= ~mask;
        return ret;
@@ -2943,7 +2943,7 @@ static inline void f2fs_change_bit(unsigned int nr, char *addr)
        int mask;
 
        addr += (nr >> 3);
-       mask = 1 << (7 - (nr & 0x07));
+       mask = BIT(7 - (nr & 0x07));
        *addr ^= mask;
 }
 
@@ -4353,9 +4353,9 @@ static inline int set_compress_context(struct inode *inode)
                        F2FS_OPTION(sbi).compress_log_size;
        F2FS_I(inode)->i_compress_flag =
                        F2FS_OPTION(sbi).compress_chksum ?
-                               1 << COMPRESS_CHKSUM : 0;
+                               BIT(COMPRESS_CHKSUM) : 0;
        F2FS_I(inode)->i_cluster_size =
-                       1 << F2FS_I(inode)->i_log_cluster_size;
+                       BIT(F2FS_I(inode)->i_log_cluster_size);
        if ((F2FS_I(inode)->i_compress_algorithm == COMPRESS_LZ4 ||
                F2FS_I(inode)->i_compress_algorithm == COMPRESS_ZSTD) &&
                        F2FS_OPTION(sbi).compress_level)
index 15dabeac4690500f8f6e6d05d64b5cba18729781..12d55023f71b1c76f5e6ec3d571688cfcd17a091 100644 (file)
@@ -3964,7 +3964,7 @@ static int f2fs_ioc_set_compress_option(struct file *filp, unsigned long arg)
 
        F2FS_I(inode)->i_compress_algorithm = option.algorithm;
        F2FS_I(inode)->i_log_cluster_size = option.log_cluster_size;
-       F2FS_I(inode)->i_cluster_size = 1 << option.log_cluster_size;
+       F2FS_I(inode)->i_cluster_size = BIT(option.log_cluster_size);
        f2fs_mark_inode_dirty_sync(inode, true);
 
        if (!f2fs_is_compress_backend_ready(inode))
index 7d2e2c0dba65cc3e4c26f9473dace273d25b3068..bb5b365a195d3256c846fb40d3a85d2c6369435b 100644 (file)
@@ -454,8 +454,8 @@ static int do_read_inode(struct inode *inode)
                        fi->i_compress_level = compress_flag >>
                                                COMPRESS_LEVEL_OFFSET;
                        fi->i_compress_flag = compress_flag &
-                                       (BIT(COMPRESS_LEVEL_OFFSET) - 1);
-                       fi->i_cluster_size = 1 << fi->i_log_cluster_size;
+                                       GENMASK(COMPRESS_LEVEL_OFFSET - 1, 0);
+                       fi->i_cluster_size = BIT(fi->i_log_cluster_size);
                        set_inode_flag(inode, FI_COMPRESSED_FILE);
                }
        }
index 99454d46a93969abab7c07770945efa8cec909bf..906fb67a99daf58d1ddb3b9d5f9b8bad72141a36 100644 (file)
@@ -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 = 0x01 << type;
        if (set)
-               ne->ni.flag |= mask;
+               ne->ni.flag |= BIT(type);
        else
-               ne->ni.flag &= ~mask;
+               ne->ni.flag &= ~BIT(type);
 }
 
 static inline bool get_nat_flag(struct nat_entry *ne, unsigned int type)
 {
-       unsigned char mask = 0x01 << type;
-       return ne->ni.flag & mask;
+       return ne->ni.flag & BIT(type);
 }
 
 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 = NM_I(sbi);
 
        block_addr -= nm_i->nat_blkaddr;
-       block_addr ^= 1 << sbi->log_blocks_per_seg;
+       block_addr ^= BIT(sbi->log_blocks_per_seg);
        return block_addr + nm_i->nat_blkaddr;
 }
 
@@ -395,7 +393,7 @@ static inline nid_t get_nid(struct page *p, int off, bool i)
 static inline int is_node(struct page *page, int type)
 {
        struct f2fs_node *rn = F2FS_NODE(page);
-       return le32_to_cpu(rn->footer.flag) & (1 << type);
+       return le32_to_cpu(rn->footer.flag) & BIT(type);
 }
 
 #define is_cold_node(page)     is_node(page, COLD_BIT_SHIFT)
@@ -408,9 +406,9 @@ static inline void set_cold_node(struct page *page, bool is_dir)
        unsigned int flag = le32_to_cpu(rn->footer.flag);
 
        if (is_dir)
-               flag &= ~(0x1 << COLD_BIT_SHIFT);
+               flag &= ~BIT(COLD_BIT_SHIFT);
        else
-               flag |= (0x1 << COLD_BIT_SHIFT);
+               flag |= BIT(COLD_BIT_SHIFT);
        rn->footer.flag = cpu_to_le32(flag);
 }
 
@@ -419,9 +417,9 @@ static inline void set_mark(struct page *page, int mark, int type)
        struct f2fs_node *rn = F2FS_NODE(page);
        unsigned int flag = le32_to_cpu(rn->footer.flag);
        if (mark)
-               flag |= (0x1 << type);
+               flag |= BIT(type);
        else
-               flag &= ~(0x1 << type);
+               flag &= ~BIT(type);
        rn->footer.flag = cpu_to_le32(flag);
 
 #ifdef CONFIG_F2FS_CHECK_FS
index fbaaabbcd6de7aec74e20eb5940c762b76c918d6..9c87d91df61b8876020e01ed8b0291ceda0ad485 100644 (file)
@@ -880,8 +880,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 <= 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 = arg;
@@ -1310,7 +1310,7 @@ default_check:
 #endif
 
        if (F2FS_IO_SIZE_BITS(sbi) && !f2fs_lfs_mode(sbi)) {
-               f2fs_err(sbi, "Should set mode=lfs with %uKB-sized IO",
+               f2fs_err(sbi, "Should set mode=lfs with %luKB-sized IO",
                         F2FS_IO_SIZE_KB(sbi));
                return -EINVAL;
        }
@@ -3348,7 +3348,7 @@ static int sanity_check_raw_super(struct f2fs_sb_info *sbi,
        total_sections = le32_to_cpu(raw_super->section_count);
 
        /* blocks_per_seg should be 512, given the above check */
-       blocks_per_seg = 1 << le32_to_cpu(raw_super->log_blocks_per_seg);
+       blocks_per_seg = BIT(le32_to_cpu(raw_super->log_blocks_per_seg));
 
        if (segment_count > F2FS_MAX_SEGMENT ||
                                segment_count < F2FS_MIN_SEGMENTS) {
@@ -3617,9 +3617,9 @@ static void init_sb_info(struct f2fs_sb_info *sbi)
        sbi->log_sectors_per_block =
                le32_to_cpu(raw_super->log_sectors_per_block);
        sbi->log_blocksize = le32_to_cpu(raw_super->log_blocksize);
-       sbi->blocksize = 1 << sbi->log_blocksize;
+       sbi->blocksize = BIT(sbi->log_blocksize);
        sbi->log_blocks_per_seg = le32_to_cpu(raw_super->log_blocks_per_seg);
-       sbi->blocks_per_seg = 1 << sbi->log_blocks_per_seg;
+       sbi->blocks_per_seg = BIT(sbi->log_blocks_per_seg);
        sbi->segs_per_sec = le32_to_cpu(raw_super->segs_per_sec);
        sbi->secs_per_zone = le32_to_cpu(raw_super->secs_per_zone);
        sbi->total_sections = le32_to_cpu(raw_super->section_count);
@@ -3875,7 +3875,7 @@ void f2fs_handle_stop(struct f2fs_sb_info *sbi, unsigned char reason)
 
        f2fs_down_write(&sbi->sb_lock);
 
-       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]++;
 
        err = f2fs_commit_super(sbi, false);
@@ -4025,7 +4025,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;
 }
 
index 5397bd8bfcf7396e49d245b643f6d0cb5aa98b7a..9ddc6ee19433d2ff951a80e2dd32c3999f9533d3 100644 (file)
@@ -452,7 +452,7 @@ out:
        if (ret < 0)
                return ret;
 #ifdef CONFIG_F2FS_FAULT_INJECTION
-       if (a->struct_type == FAULT_INFO_TYPE && t >= (1 << FAULT_MAX))
+       if (a->struct_type == FAULT_INFO_TYPE && t >= BIT(FAULT_MAX))
                return -EINVAL;
        if (a->struct_type == FAULT_INFO_RATE && t >= UINT_MAX)
                return -EINVAL;
index 1701f25117ea4af5df4cf0202eeb2bc5175db138..881eb9321967d5475f5bfb7cb3ebac2a0eca6a62 100644 (file)
@@ -40,9 +40,8 @@
 
 #define F2FS_ENC_UTF8_12_1     1
 
-#define F2FS_IO_SIZE(sbi)      (1 << F2FS_OPTION(sbi).write_io_size_bits) /* Blocks */
-#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) /* Blocks */
+#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) /* power 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
 };
 
-#define OFFSET_BIT_MASK                (0x07)  /* (0x01 << OFFSET_BIT_SHIFT) - 1 */
+#define OFFSET_BIT_MASK                GENMASK(OFFSET_BIT_SHIFT - 1, 0)
 
 struct node_footer {
        __le32 nid;             /* node id */
@@ -545,7 +544,7 @@ typedef __le32      f2fs_hash_t;
 #define MAX_DIR_HASH_DEPTH     63
 
 /* 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)
 
 /*
  * space utilization of regular dentry and inline dentry (w/o extra reservation)