Re: [PATCH] f2fs: Force type conversion from __le32 to u32

From: Chao Yu
Date: Fri Apr 19 2019 - 23:12:48 EST


On 2019/4/18 15:35, Bharath Vedartham wrote:
> This patch forces type conversion from __le32 to u32 to prevent sparse
> warnings like:
> warning: restricted __le32 degrades to integer
>
> dir.c:
> fscrypt_fname_disk_to_usr takes a hash of type u32 as it's second arg
> but de->hash_code is of type __le32.
>
> node.c
> NULL_ADDR is of type u32 but block_addr is of type __le32.
>
> Signed-off-by: Bharath Vedartham <linux.bhar@xxxxxxxxx>
> ---
> fs/f2fs/dir.c | 2 +-
> fs/f2fs/node.c | 2 +-
> 2 files changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c
> index 59bc460..4f39872 100644
> --- a/fs/f2fs/dir.c
> +++ b/fs/f2fs/dir.c
> @@ -828,7 +828,7 @@ int f2fs_fill_dentries(struct dir_context *ctx, struct f2fs_dentry_ptr *d,
> int save_len = fstr->len;
>
> err = fscrypt_fname_disk_to_usr(d->inode,
> - (u32)de->hash_code, 0,

le32_to_cpu(de->hash_code)

> + (__force u32)de->hash_code, 0,
> &de_name, fstr);
> if (err)
> goto out;
> diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c
> index 3f99ab2..9e333a5 100644
> --- a/fs/f2fs/node.c
> +++ b/fs/f2fs/node.c
> @@ -2706,7 +2706,7 @@ static void __update_nat_bits(struct f2fs_sb_info *sbi, nid_t start_nid,
> i = 1;
> }
> for (; i < NAT_ENTRY_PER_BLOCK; i++) {
> - if (nat_blk->entries[i].block_addr != NULL_ADDR)
> + if ((__force u32)nat_blk->entries[i].block_addr != NULL_ADDR)

block_t blkaddr = le32_to_cpu(nat_blk->entries[i].block_addr);

if (blkaddr != NULL_ADDR)

Thanks,

> valid++;
> }
> if (valid == 0) {
>