diff mbox series

[f2fs-dev] f2fs: clean up w/ F2FS_{BLK_TO_BYTES, BTYES_TO_BLK}

Message ID 20241107014602.3638020-1-chao@kernel.org (mailing list archive)
State Accepted
Commit 7461f37094180200cb2f98e60ef99a0cea97beec
Headers show
Series [f2fs-dev] f2fs: clean up w/ F2FS_{BLK_TO_BYTES, BTYES_TO_BLK} | expand

Commit Message

Chao Yu Nov. 7, 2024, 1:46 a.m. UTC
f2fs doesn't support different blksize in one instance, so
bytes_to_blks() and blks_to_bytes() are equal to F2FS_BYTES_TO_BLK
and F2FS_BLK_TO_BYTES, let's use F2FS_BYTES_TO_BLK/F2FS_BLK_TO_BYTES
instead for cleanup.

Reported-by: Zhiguo Niu <zhiguo.niu@unisoc.com>
Signed-off-by: Chao Yu <chao@kernel.org>
---
 fs/f2fs/data.c | 68 +++++++++++++++++++++-----------------------------
 1 file changed, 29 insertions(+), 39 deletions(-)

Comments

Zhiguo Niu Nov. 7, 2024, 3:19 a.m. UTC | #1
Chao Yu via Linux-f2fs-devel <linux-f2fs-devel@lists.sourceforge.net>
于2024年11月7日周四 09:50写道:
>
> f2fs doesn't support different blksize in one instance, so
> bytes_to_blks() and blks_to_bytes() are equal to F2FS_BYTES_TO_BLK
> and F2FS_BLK_TO_BYTES, let's use F2FS_BYTES_TO_BLK/F2FS_BLK_TO_BYTES
> instead for cleanup.
>
> Reported-by: Zhiguo Niu <zhiguo.niu@unisoc.com>
> Signed-off-by: Chao Yu <chao@kernel.org>
feel free to add:
Reviewed-by: Zhiguo Niu <zhiguo.niu@unisoc.com>
thanks!
> ---
>  fs/f2fs/data.c | 68 +++++++++++++++++++++-----------------------------
>  1 file changed, 29 insertions(+), 39 deletions(-)
>
> diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
> index b33aca24b9ef..0e8390cbdb5b 100644
> --- a/fs/f2fs/data.c
> +++ b/fs/f2fs/data.c
> @@ -1819,16 +1819,6 @@ bool f2fs_overwrite_io(struct inode *inode, loff_t pos, size_t len)
>         return true;
>  }
>
> -static inline u64 bytes_to_blks(struct inode *inode, u64 bytes)
> -{
> -       return (bytes >> inode->i_blkbits);
> -}
> -
> -static inline u64 blks_to_bytes(struct inode *inode, u64 blks)
> -{
> -       return (blks << inode->i_blkbits);
> -}
> -
>  static int f2fs_xattr_fiemap(struct inode *inode,
>                                 struct fiemap_extent_info *fieinfo)
>  {
> @@ -1854,7 +1844,7 @@ static int f2fs_xattr_fiemap(struct inode *inode,
>                         return err;
>                 }
>
> -               phys = blks_to_bytes(inode, ni.blk_addr);
> +               phys = F2FS_BLK_TO_BYTES(ni.blk_addr);
>                 offset = offsetof(struct f2fs_inode, i_addr) +
>                                         sizeof(__le32) * (DEF_ADDRS_PER_INODE -
>                                         get_inline_xattr_addrs(inode));
> @@ -1886,7 +1876,7 @@ static int f2fs_xattr_fiemap(struct inode *inode,
>                         return err;
>                 }
>
> -               phys = blks_to_bytes(inode, ni.blk_addr);
> +               phys = F2FS_BLK_TO_BYTES(ni.blk_addr);
>                 len = inode->i_sb->s_blocksize;
>
>                 f2fs_put_page(page, 1);
> @@ -1948,16 +1938,16 @@ int f2fs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
>                         goto out;
>         }
>
> -       if (bytes_to_blks(inode, len) == 0)
> -               len = blks_to_bytes(inode, 1);
> +       if (F2FS_BYTES_TO_BLK(len) == 0)
> +               len = F2FS_BLKSIZE;
>
> -       start_blk = bytes_to_blks(inode, start);
> -       last_blk = bytes_to_blks(inode, start + len - 1);
> +       start_blk = F2FS_BYTES_TO_BLK(start);
> +       last_blk = F2FS_BYTES_TO_BLK(start + len - 1);
>
>  next:
>         memset(&map, 0, sizeof(map));
>         map.m_lblk = start_blk;
> -       map.m_len = bytes_to_blks(inode, len);
> +       map.m_len = F2FS_BYTES_TO_BLK(len);
>         map.m_next_pgofs = &next_pgofs;
>         map.m_seg_type = NO_CHECK_TYPE;
>
> @@ -1974,7 +1964,7 @@ int f2fs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
>         if (!compr_cluster && !(map.m_flags & F2FS_MAP_FLAGS)) {
>                 start_blk = next_pgofs;
>
> -               if (blks_to_bytes(inode, start_blk) < maxbytes)
> +               if (F2FS_BLK_TO_BYTES(start_blk) < maxbytes)
>                         goto prep_next;
>
>                 flags |= FIEMAP_EXTENT_LAST;
> @@ -2011,14 +2001,14 @@ int f2fs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
>         } else if (compr_appended) {
>                 unsigned int appended_blks = cluster_size -
>                                                 count_in_cluster + 1;
> -               size += blks_to_bytes(inode, appended_blks);
> +               size += F2FS_BLK_TO_BYTES(appended_blks);
>                 start_blk += appended_blks;
>                 compr_cluster = false;
>         } else {
> -               logical = blks_to_bytes(inode, start_blk);
> +               logical = F2FS_BLK_TO_BYTES(start_blk);
>                 phys = __is_valid_data_blkaddr(map.m_pblk) ?
> -                       blks_to_bytes(inode, map.m_pblk) : 0;
> -               size = blks_to_bytes(inode, map.m_len);
> +                       F2FS_BLK_TO_BYTES(map.m_pblk) : 0;
> +               size = F2FS_BLK_TO_BYTES(map.m_len);
>                 flags = 0;
>
>                 if (compr_cluster) {
> @@ -2026,13 +2016,13 @@ int f2fs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
>                         count_in_cluster += map.m_len;
>                         if (count_in_cluster == cluster_size) {
>                                 compr_cluster = false;
> -                               size += blks_to_bytes(inode, 1);
> +                               size += F2FS_BLKSIZE;
>                         }
>                 } else if (map.m_flags & F2FS_MAP_DELALLOC) {
>                         flags = FIEMAP_EXTENT_UNWRITTEN;
>                 }
>
> -               start_blk += bytes_to_blks(inode, size);
> +               start_blk += F2FS_BYTES_TO_BLK(size);
>         }
>
>  prep_next:
> @@ -2070,7 +2060,7 @@ static int f2fs_read_single_page(struct inode *inode, struct folio *folio,
>                                         struct readahead_control *rac)
>  {
>         struct bio *bio = *bio_ret;
> -       const unsigned blocksize = blks_to_bytes(inode, 1);
> +       const unsigned int blocksize = F2FS_BLKSIZE;
>         sector_t block_in_file;
>         sector_t last_block;
>         sector_t last_block_in_file;
> @@ -2080,8 +2070,8 @@ static int f2fs_read_single_page(struct inode *inode, struct folio *folio,
>
>         block_in_file = (sector_t)index;
>         last_block = block_in_file + nr_pages;
> -       last_block_in_file = bytes_to_blks(inode,
> -                       f2fs_readpage_limit(inode) + blocksize - 1);
> +       last_block_in_file = F2FS_BYTES_TO_BLK(f2fs_readpage_limit(inode) +
> +                                                       blocksize - 1);
>         if (last_block > last_block_in_file)
>                 last_block = last_block_in_file;
>
> @@ -2181,7 +2171,7 @@ int f2fs_read_multi_pages(struct compress_ctx *cc, struct bio **bio_ret,
>         struct bio *bio = *bio_ret;
>         unsigned int start_idx = cc->cluster_idx << cc->log_cluster_size;
>         sector_t last_block_in_file;
> -       const unsigned blocksize = blks_to_bytes(inode, 1);
> +       const unsigned int blocksize = F2FS_BLKSIZE;
>         struct decompress_io_ctx *dic = NULL;
>         struct extent_info ei = {};
>         bool from_dnode = true;
> @@ -2190,8 +2180,8 @@ int f2fs_read_multi_pages(struct compress_ctx *cc, struct bio **bio_ret,
>
>         f2fs_bug_on(sbi, f2fs_cluster_is_empty(cc));
>
> -       last_block_in_file = bytes_to_blks(inode,
> -                       f2fs_readpage_limit(inode) + blocksize - 1);
> +       last_block_in_file = F2FS_BYTES_TO_BLK(f2fs_readpage_limit(inode) +
> +                                                       blocksize - 1);
>
>         /* get rid of pages beyond EOF */
>         for (i = 0; i < cc->cluster_size; i++) {
> @@ -3957,7 +3947,7 @@ static int check_swap_activate(struct swap_info_struct *sis,
>          * to be very smart.
>          */
>         cur_lblock = 0;
> -       last_lblock = bytes_to_blks(inode, i_size_read(inode));
> +       last_lblock = F2FS_BYTES_TO_BLK(i_size_read(inode));
>
>         while (cur_lblock < last_lblock && cur_lblock < sis->max) {
>                 struct f2fs_map_blocks map;
> @@ -4200,8 +4190,8 @@ static int f2fs_iomap_begin(struct inode *inode, loff_t offset, loff_t length,
>         pgoff_t next_pgofs = 0;
>         int err;
>
> -       map.m_lblk = bytes_to_blks(inode, offset);
> -       map.m_len = bytes_to_blks(inode, offset + length - 1) - map.m_lblk + 1;
> +       map.m_lblk = F2FS_BYTES_TO_BLK(offset);
> +       map.m_len = F2FS_BYTES_TO_BLK(offset + length - 1) - map.m_lblk + 1;
>         map.m_next_pgofs = &next_pgofs;
>         map.m_seg_type = f2fs_rw_hint_to_seg_type(F2FS_I_SB(inode),
>                                                 inode->i_write_hint);
> @@ -4212,7 +4202,7 @@ static int f2fs_iomap_begin(struct inode *inode, loff_t offset, loff_t length,
>         if (err)
>                 return err;
>
> -       iomap->offset = blks_to_bytes(inode, map.m_lblk);
> +       iomap->offset = F2FS_BLK_TO_BYTES(map.m_lblk);
>
>         /*
>          * When inline encryption is enabled, sometimes I/O to an encrypted file
> @@ -4232,21 +4222,21 @@ static int f2fs_iomap_begin(struct inode *inode, loff_t offset, loff_t length,
>                 if (WARN_ON_ONCE(map.m_pblk == NEW_ADDR))
>                         return -EINVAL;
>
> -               iomap->length = blks_to_bytes(inode, map.m_len);
> +               iomap->length = F2FS_BLK_TO_BYTES(map.m_len);
>                 iomap->type = IOMAP_MAPPED;
>                 iomap->flags |= IOMAP_F_MERGED;
>                 iomap->bdev = map.m_bdev;
> -               iomap->addr = blks_to_bytes(inode, map.m_pblk);
> +               iomap->addr = F2FS_BLK_TO_BYTES(map.m_pblk);
>         } else {
>                 if (flags & IOMAP_WRITE)
>                         return -ENOTBLK;
>
>                 if (map.m_pblk == NULL_ADDR) {
> -                       iomap->length = blks_to_bytes(inode, next_pgofs) -
> -                                                               iomap->offset;
> +                       iomap->length = F2FS_BLK_TO_BYTES(next_pgofs) -
> +                                                       iomap->offset;
>                         iomap->type = IOMAP_HOLE;
>                 } else if (map.m_pblk == NEW_ADDR) {
> -                       iomap->length = blks_to_bytes(inode, map.m_len);
> +                       iomap->length = F2FS_BLK_TO_BYTES(map.m_len);
>                         iomap->type = IOMAP_UNWRITTEN;
>                 } else {
>                         f2fs_bug_on(F2FS_I_SB(inode), 1);
> --
> 2.40.1
>
>
>
> _______________________________________________
> Linux-f2fs-devel mailing list
> Linux-f2fs-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
Chao Yu Nov. 7, 2024, 8:09 a.m. UTC | #2
On 2024/11/7 11:19, Zhiguo Niu wrote:
> Chao Yu via Linux-f2fs-devel <linux-f2fs-devel@lists.sourceforge.net>
> 于2024年11月7日周四 09:50写道:
>>
>> f2fs doesn't support different blksize in one instance, so
>> bytes_to_blks() and blks_to_bytes() are equal to F2FS_BYTES_TO_BLK
>> and F2FS_BLK_TO_BYTES, let's use F2FS_BYTES_TO_BLK/F2FS_BLK_TO_BYTES
>> instead for cleanup.
>>
>> Reported-by: Zhiguo Niu <zhiguo.niu@unisoc.com>
>> Signed-off-by: Chao Yu <chao@kernel.org>
> feel free to add:
> Reviewed-by: Zhiguo Niu <zhiguo.niu@unisoc.com>

I encounter filesystem corruption w/ this patch while testing generic/051,
since we missed to cast bytes/blk argument to unsigned long long type.

-#define F2FS_BYTES_TO_BLK(bytes)	((bytes) >> F2FS_BLKSIZE_BITS)
-#define F2FS_BLK_TO_BYTES(blk)		((blk) << F2FS_BLKSIZE_BITS)
+#define F2FS_BYTES_TO_BLK(bytes)	((unsigned long long)(bytes) >> F2FS_BLKSIZE_BITS)
+#define F2FS_BLK_TO_BYTES(blk)		((unsigned long long)(blk) << F2FS_BLKSIZE_BITS)

Will fix this in a separate patch.

Thanks,

> thanks!
>> ---
>>   fs/f2fs/data.c | 68 +++++++++++++++++++++-----------------------------
>>   1 file changed, 29 insertions(+), 39 deletions(-)
>>
>> diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
>> index b33aca24b9ef..0e8390cbdb5b 100644
>> --- a/fs/f2fs/data.c
>> +++ b/fs/f2fs/data.c
>> @@ -1819,16 +1819,6 @@ bool f2fs_overwrite_io(struct inode *inode, loff_t pos, size_t len)
>>          return true;
>>   }
>>
>> -static inline u64 bytes_to_blks(struct inode *inode, u64 bytes)
>> -{
>> -       return (bytes >> inode->i_blkbits);
>> -}
>> -
>> -static inline u64 blks_to_bytes(struct inode *inode, u64 blks)
>> -{
>> -       return (blks << inode->i_blkbits);
>> -}
>> -
>>   static int f2fs_xattr_fiemap(struct inode *inode,
>>                                  struct fiemap_extent_info *fieinfo)
>>   {
>> @@ -1854,7 +1844,7 @@ static int f2fs_xattr_fiemap(struct inode *inode,
>>                          return err;
>>                  }
>>
>> -               phys = blks_to_bytes(inode, ni.blk_addr);
>> +               phys = F2FS_BLK_TO_BYTES(ni.blk_addr);
>>                  offset = offsetof(struct f2fs_inode, i_addr) +
>>                                          sizeof(__le32) * (DEF_ADDRS_PER_INODE -
>>                                          get_inline_xattr_addrs(inode));
>> @@ -1886,7 +1876,7 @@ static int f2fs_xattr_fiemap(struct inode *inode,
>>                          return err;
>>                  }
>>
>> -               phys = blks_to_bytes(inode, ni.blk_addr);
>> +               phys = F2FS_BLK_TO_BYTES(ni.blk_addr);
>>                  len = inode->i_sb->s_blocksize;
>>
>>                  f2fs_put_page(page, 1);
>> @@ -1948,16 +1938,16 @@ int f2fs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
>>                          goto out;
>>          }
>>
>> -       if (bytes_to_blks(inode, len) == 0)
>> -               len = blks_to_bytes(inode, 1);
>> +       if (F2FS_BYTES_TO_BLK(len) == 0)
>> +               len = F2FS_BLKSIZE;
>>
>> -       start_blk = bytes_to_blks(inode, start);
>> -       last_blk = bytes_to_blks(inode, start + len - 1);
>> +       start_blk = F2FS_BYTES_TO_BLK(start);
>> +       last_blk = F2FS_BYTES_TO_BLK(start + len - 1);
>>
>>   next:
>>          memset(&map, 0, sizeof(map));
>>          map.m_lblk = start_blk;
>> -       map.m_len = bytes_to_blks(inode, len);
>> +       map.m_len = F2FS_BYTES_TO_BLK(len);
>>          map.m_next_pgofs = &next_pgofs;
>>          map.m_seg_type = NO_CHECK_TYPE;
>>
>> @@ -1974,7 +1964,7 @@ int f2fs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
>>          if (!compr_cluster && !(map.m_flags & F2FS_MAP_FLAGS)) {
>>                  start_blk = next_pgofs;
>>
>> -               if (blks_to_bytes(inode, start_blk) < maxbytes)
>> +               if (F2FS_BLK_TO_BYTES(start_blk) < maxbytes)
>>                          goto prep_next;
>>
>>                  flags |= FIEMAP_EXTENT_LAST;
>> @@ -2011,14 +2001,14 @@ int f2fs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
>>          } else if (compr_appended) {
>>                  unsigned int appended_blks = cluster_size -
>>                                                  count_in_cluster + 1;
>> -               size += blks_to_bytes(inode, appended_blks);
>> +               size += F2FS_BLK_TO_BYTES(appended_blks);
>>                  start_blk += appended_blks;
>>                  compr_cluster = false;
>>          } else {
>> -               logical = blks_to_bytes(inode, start_blk);
>> +               logical = F2FS_BLK_TO_BYTES(start_blk);
>>                  phys = __is_valid_data_blkaddr(map.m_pblk) ?
>> -                       blks_to_bytes(inode, map.m_pblk) : 0;
>> -               size = blks_to_bytes(inode, map.m_len);
>> +                       F2FS_BLK_TO_BYTES(map.m_pblk) : 0;
>> +               size = F2FS_BLK_TO_BYTES(map.m_len);
>>                  flags = 0;
>>
>>                  if (compr_cluster) {
>> @@ -2026,13 +2016,13 @@ int f2fs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
>>                          count_in_cluster += map.m_len;
>>                          if (count_in_cluster == cluster_size) {
>>                                  compr_cluster = false;
>> -                               size += blks_to_bytes(inode, 1);
>> +                               size += F2FS_BLKSIZE;
>>                          }
>>                  } else if (map.m_flags & F2FS_MAP_DELALLOC) {
>>                          flags = FIEMAP_EXTENT_UNWRITTEN;
>>                  }
>>
>> -               start_blk += bytes_to_blks(inode, size);
>> +               start_blk += F2FS_BYTES_TO_BLK(size);
>>          }
>>
>>   prep_next:
>> @@ -2070,7 +2060,7 @@ static int f2fs_read_single_page(struct inode *inode, struct folio *folio,
>>                                          struct readahead_control *rac)
>>   {
>>          struct bio *bio = *bio_ret;
>> -       const unsigned blocksize = blks_to_bytes(inode, 1);
>> +       const unsigned int blocksize = F2FS_BLKSIZE;
>>          sector_t block_in_file;
>>          sector_t last_block;
>>          sector_t last_block_in_file;
>> @@ -2080,8 +2070,8 @@ static int f2fs_read_single_page(struct inode *inode, struct folio *folio,
>>
>>          block_in_file = (sector_t)index;
>>          last_block = block_in_file + nr_pages;
>> -       last_block_in_file = bytes_to_blks(inode,
>> -                       f2fs_readpage_limit(inode) + blocksize - 1);
>> +       last_block_in_file = F2FS_BYTES_TO_BLK(f2fs_readpage_limit(inode) +
>> +                                                       blocksize - 1);
>>          if (last_block > last_block_in_file)
>>                  last_block = last_block_in_file;
>>
>> @@ -2181,7 +2171,7 @@ int f2fs_read_multi_pages(struct compress_ctx *cc, struct bio **bio_ret,
>>          struct bio *bio = *bio_ret;
>>          unsigned int start_idx = cc->cluster_idx << cc->log_cluster_size;
>>          sector_t last_block_in_file;
>> -       const unsigned blocksize = blks_to_bytes(inode, 1);
>> +       const unsigned int blocksize = F2FS_BLKSIZE;
>>          struct decompress_io_ctx *dic = NULL;
>>          struct extent_info ei = {};
>>          bool from_dnode = true;
>> @@ -2190,8 +2180,8 @@ int f2fs_read_multi_pages(struct compress_ctx *cc, struct bio **bio_ret,
>>
>>          f2fs_bug_on(sbi, f2fs_cluster_is_empty(cc));
>>
>> -       last_block_in_file = bytes_to_blks(inode,
>> -                       f2fs_readpage_limit(inode) + blocksize - 1);
>> +       last_block_in_file = F2FS_BYTES_TO_BLK(f2fs_readpage_limit(inode) +
>> +                                                       blocksize - 1);
>>
>>          /* get rid of pages beyond EOF */
>>          for (i = 0; i < cc->cluster_size; i++) {
>> @@ -3957,7 +3947,7 @@ static int check_swap_activate(struct swap_info_struct *sis,
>>           * to be very smart.
>>           */
>>          cur_lblock = 0;
>> -       last_lblock = bytes_to_blks(inode, i_size_read(inode));
>> +       last_lblock = F2FS_BYTES_TO_BLK(i_size_read(inode));
>>
>>          while (cur_lblock < last_lblock && cur_lblock < sis->max) {
>>                  struct f2fs_map_blocks map;
>> @@ -4200,8 +4190,8 @@ static int f2fs_iomap_begin(struct inode *inode, loff_t offset, loff_t length,
>>          pgoff_t next_pgofs = 0;
>>          int err;
>>
>> -       map.m_lblk = bytes_to_blks(inode, offset);
>> -       map.m_len = bytes_to_blks(inode, offset + length - 1) - map.m_lblk + 1;
>> +       map.m_lblk = F2FS_BYTES_TO_BLK(offset);
>> +       map.m_len = F2FS_BYTES_TO_BLK(offset + length - 1) - map.m_lblk + 1;
>>          map.m_next_pgofs = &next_pgofs;
>>          map.m_seg_type = f2fs_rw_hint_to_seg_type(F2FS_I_SB(inode),
>>                                                  inode->i_write_hint);
>> @@ -4212,7 +4202,7 @@ static int f2fs_iomap_begin(struct inode *inode, loff_t offset, loff_t length,
>>          if (err)
>>                  return err;
>>
>> -       iomap->offset = blks_to_bytes(inode, map.m_lblk);
>> +       iomap->offset = F2FS_BLK_TO_BYTES(map.m_lblk);
>>
>>          /*
>>           * When inline encryption is enabled, sometimes I/O to an encrypted file
>> @@ -4232,21 +4222,21 @@ static int f2fs_iomap_begin(struct inode *inode, loff_t offset, loff_t length,
>>                  if (WARN_ON_ONCE(map.m_pblk == NEW_ADDR))
>>                          return -EINVAL;
>>
>> -               iomap->length = blks_to_bytes(inode, map.m_len);
>> +               iomap->length = F2FS_BLK_TO_BYTES(map.m_len);
>>                  iomap->type = IOMAP_MAPPED;
>>                  iomap->flags |= IOMAP_F_MERGED;
>>                  iomap->bdev = map.m_bdev;
>> -               iomap->addr = blks_to_bytes(inode, map.m_pblk);
>> +               iomap->addr = F2FS_BLK_TO_BYTES(map.m_pblk);
>>          } else {
>>                  if (flags & IOMAP_WRITE)
>>                          return -ENOTBLK;
>>
>>                  if (map.m_pblk == NULL_ADDR) {
>> -                       iomap->length = blks_to_bytes(inode, next_pgofs) -
>> -                                                               iomap->offset;
>> +                       iomap->length = F2FS_BLK_TO_BYTES(next_pgofs) -
>> +                                                       iomap->offset;
>>                          iomap->type = IOMAP_HOLE;
>>                  } else if (map.m_pblk == NEW_ADDR) {
>> -                       iomap->length = blks_to_bytes(inode, map.m_len);
>> +                       iomap->length = F2FS_BLK_TO_BYTES(map.m_len);
>>                          iomap->type = IOMAP_UNWRITTEN;
>>                  } else {
>>                          f2fs_bug_on(F2FS_I_SB(inode), 1);
>> --
>> 2.40.1
>>
>>
>>
>> _______________________________________________
>> Linux-f2fs-devel mailing list
>> Linux-f2fs-devel@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel
patchwork-bot+f2fs--- via Linux-f2fs-devel Nov. 21, 2024, 4:20 p.m. UTC | #3
Hello:

This patch was applied to jaegeuk/f2fs.git (dev)
by Jaegeuk Kim <jaegeuk@kernel.org>:

On Thu,  7 Nov 2024 09:46:02 +0800 you wrote:
> f2fs doesn't support different blksize in one instance, so
> bytes_to_blks() and blks_to_bytes() are equal to F2FS_BYTES_TO_BLK
> and F2FS_BLK_TO_BYTES, let's use F2FS_BYTES_TO_BLK/F2FS_BLK_TO_BYTES
> instead for cleanup.
> 
> Reported-by: Zhiguo Niu <zhiguo.niu@unisoc.com>
> Signed-off-by: Chao Yu <chao@kernel.org>
> 
> [...]

Here is the summary with links:
  - [f2fs-dev] f2fs: clean up w/ F2FS_{BLK_TO_BYTES, BTYES_TO_BLK}
    https://git.kernel.org/jaegeuk/f2fs/c/7461f3709418

You are awesome, thank you!
diff mbox series

Patch

diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index b33aca24b9ef..0e8390cbdb5b 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -1819,16 +1819,6 @@  bool f2fs_overwrite_io(struct inode *inode, loff_t pos, size_t len)
 	return true;
 }
 
-static inline u64 bytes_to_blks(struct inode *inode, u64 bytes)
-{
-	return (bytes >> inode->i_blkbits);
-}
-
-static inline u64 blks_to_bytes(struct inode *inode, u64 blks)
-{
-	return (blks << inode->i_blkbits);
-}
-
 static int f2fs_xattr_fiemap(struct inode *inode,
 				struct fiemap_extent_info *fieinfo)
 {
@@ -1854,7 +1844,7 @@  static int f2fs_xattr_fiemap(struct inode *inode,
 			return err;
 		}
 
-		phys = blks_to_bytes(inode, ni.blk_addr);
+		phys = F2FS_BLK_TO_BYTES(ni.blk_addr);
 		offset = offsetof(struct f2fs_inode, i_addr) +
 					sizeof(__le32) * (DEF_ADDRS_PER_INODE -
 					get_inline_xattr_addrs(inode));
@@ -1886,7 +1876,7 @@  static int f2fs_xattr_fiemap(struct inode *inode,
 			return err;
 		}
 
-		phys = blks_to_bytes(inode, ni.blk_addr);
+		phys = F2FS_BLK_TO_BYTES(ni.blk_addr);
 		len = inode->i_sb->s_blocksize;
 
 		f2fs_put_page(page, 1);
@@ -1948,16 +1938,16 @@  int f2fs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
 			goto out;
 	}
 
-	if (bytes_to_blks(inode, len) == 0)
-		len = blks_to_bytes(inode, 1);
+	if (F2FS_BYTES_TO_BLK(len) == 0)
+		len = F2FS_BLKSIZE;
 
-	start_blk = bytes_to_blks(inode, start);
-	last_blk = bytes_to_blks(inode, start + len - 1);
+	start_blk = F2FS_BYTES_TO_BLK(start);
+	last_blk = F2FS_BYTES_TO_BLK(start + len - 1);
 
 next:
 	memset(&map, 0, sizeof(map));
 	map.m_lblk = start_blk;
-	map.m_len = bytes_to_blks(inode, len);
+	map.m_len = F2FS_BYTES_TO_BLK(len);
 	map.m_next_pgofs = &next_pgofs;
 	map.m_seg_type = NO_CHECK_TYPE;
 
@@ -1974,7 +1964,7 @@  int f2fs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
 	if (!compr_cluster && !(map.m_flags & F2FS_MAP_FLAGS)) {
 		start_blk = next_pgofs;
 
-		if (blks_to_bytes(inode, start_blk) < maxbytes)
+		if (F2FS_BLK_TO_BYTES(start_blk) < maxbytes)
 			goto prep_next;
 
 		flags |= FIEMAP_EXTENT_LAST;
@@ -2011,14 +2001,14 @@  int f2fs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
 	} else if (compr_appended) {
 		unsigned int appended_blks = cluster_size -
 						count_in_cluster + 1;
-		size += blks_to_bytes(inode, appended_blks);
+		size += F2FS_BLK_TO_BYTES(appended_blks);
 		start_blk += appended_blks;
 		compr_cluster = false;
 	} else {
-		logical = blks_to_bytes(inode, start_blk);
+		logical = F2FS_BLK_TO_BYTES(start_blk);
 		phys = __is_valid_data_blkaddr(map.m_pblk) ?
-			blks_to_bytes(inode, map.m_pblk) : 0;
-		size = blks_to_bytes(inode, map.m_len);
+			F2FS_BLK_TO_BYTES(map.m_pblk) : 0;
+		size = F2FS_BLK_TO_BYTES(map.m_len);
 		flags = 0;
 
 		if (compr_cluster) {
@@ -2026,13 +2016,13 @@  int f2fs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo,
 			count_in_cluster += map.m_len;
 			if (count_in_cluster == cluster_size) {
 				compr_cluster = false;
-				size += blks_to_bytes(inode, 1);
+				size += F2FS_BLKSIZE;
 			}
 		} else if (map.m_flags & F2FS_MAP_DELALLOC) {
 			flags = FIEMAP_EXTENT_UNWRITTEN;
 		}
 
-		start_blk += bytes_to_blks(inode, size);
+		start_blk += F2FS_BYTES_TO_BLK(size);
 	}
 
 prep_next:
@@ -2070,7 +2060,7 @@  static int f2fs_read_single_page(struct inode *inode, struct folio *folio,
 					struct readahead_control *rac)
 {
 	struct bio *bio = *bio_ret;
-	const unsigned blocksize = blks_to_bytes(inode, 1);
+	const unsigned int blocksize = F2FS_BLKSIZE;
 	sector_t block_in_file;
 	sector_t last_block;
 	sector_t last_block_in_file;
@@ -2080,8 +2070,8 @@  static int f2fs_read_single_page(struct inode *inode, struct folio *folio,
 
 	block_in_file = (sector_t)index;
 	last_block = block_in_file + nr_pages;
-	last_block_in_file = bytes_to_blks(inode,
-			f2fs_readpage_limit(inode) + blocksize - 1);
+	last_block_in_file = F2FS_BYTES_TO_BLK(f2fs_readpage_limit(inode) +
+							blocksize - 1);
 	if (last_block > last_block_in_file)
 		last_block = last_block_in_file;
 
@@ -2181,7 +2171,7 @@  int f2fs_read_multi_pages(struct compress_ctx *cc, struct bio **bio_ret,
 	struct bio *bio = *bio_ret;
 	unsigned int start_idx = cc->cluster_idx << cc->log_cluster_size;
 	sector_t last_block_in_file;
-	const unsigned blocksize = blks_to_bytes(inode, 1);
+	const unsigned int blocksize = F2FS_BLKSIZE;
 	struct decompress_io_ctx *dic = NULL;
 	struct extent_info ei = {};
 	bool from_dnode = true;
@@ -2190,8 +2180,8 @@  int f2fs_read_multi_pages(struct compress_ctx *cc, struct bio **bio_ret,
 
 	f2fs_bug_on(sbi, f2fs_cluster_is_empty(cc));
 
-	last_block_in_file = bytes_to_blks(inode,
-			f2fs_readpage_limit(inode) + blocksize - 1);
+	last_block_in_file = F2FS_BYTES_TO_BLK(f2fs_readpage_limit(inode) +
+							blocksize - 1);
 
 	/* get rid of pages beyond EOF */
 	for (i = 0; i < cc->cluster_size; i++) {
@@ -3957,7 +3947,7 @@  static int check_swap_activate(struct swap_info_struct *sis,
 	 * to be very smart.
 	 */
 	cur_lblock = 0;
-	last_lblock = bytes_to_blks(inode, i_size_read(inode));
+	last_lblock = F2FS_BYTES_TO_BLK(i_size_read(inode));
 
 	while (cur_lblock < last_lblock && cur_lblock < sis->max) {
 		struct f2fs_map_blocks map;
@@ -4200,8 +4190,8 @@  static int f2fs_iomap_begin(struct inode *inode, loff_t offset, loff_t length,
 	pgoff_t next_pgofs = 0;
 	int err;
 
-	map.m_lblk = bytes_to_blks(inode, offset);
-	map.m_len = bytes_to_blks(inode, offset + length - 1) - map.m_lblk + 1;
+	map.m_lblk = F2FS_BYTES_TO_BLK(offset);
+	map.m_len = F2FS_BYTES_TO_BLK(offset + length - 1) - map.m_lblk + 1;
 	map.m_next_pgofs = &next_pgofs;
 	map.m_seg_type = f2fs_rw_hint_to_seg_type(F2FS_I_SB(inode),
 						inode->i_write_hint);
@@ -4212,7 +4202,7 @@  static int f2fs_iomap_begin(struct inode *inode, loff_t offset, loff_t length,
 	if (err)
 		return err;
 
-	iomap->offset = blks_to_bytes(inode, map.m_lblk);
+	iomap->offset = F2FS_BLK_TO_BYTES(map.m_lblk);
 
 	/*
 	 * When inline encryption is enabled, sometimes I/O to an encrypted file
@@ -4232,21 +4222,21 @@  static int f2fs_iomap_begin(struct inode *inode, loff_t offset, loff_t length,
 		if (WARN_ON_ONCE(map.m_pblk == NEW_ADDR))
 			return -EINVAL;
 
-		iomap->length = blks_to_bytes(inode, map.m_len);
+		iomap->length = F2FS_BLK_TO_BYTES(map.m_len);
 		iomap->type = IOMAP_MAPPED;
 		iomap->flags |= IOMAP_F_MERGED;
 		iomap->bdev = map.m_bdev;
-		iomap->addr = blks_to_bytes(inode, map.m_pblk);
+		iomap->addr = F2FS_BLK_TO_BYTES(map.m_pblk);
 	} else {
 		if (flags & IOMAP_WRITE)
 			return -ENOTBLK;
 
 		if (map.m_pblk == NULL_ADDR) {
-			iomap->length = blks_to_bytes(inode, next_pgofs) -
-								iomap->offset;
+			iomap->length = F2FS_BLK_TO_BYTES(next_pgofs) -
+							iomap->offset;
 			iomap->type = IOMAP_HOLE;
 		} else if (map.m_pblk == NEW_ADDR) {
-			iomap->length = blks_to_bytes(inode, map.m_len);
+			iomap->length = F2FS_BLK_TO_BYTES(map.m_len);
 			iomap->type = IOMAP_UNWRITTEN;
 		} else {
 			f2fs_bug_on(F2FS_I_SB(inode), 1);