[PATCH] bcachefs: fix invalid declaration after label in str_hash.c

Zhou Ding posted 1 patch 1 year ago
fs/bcachefs/str_hash.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
[PATCH] bcachefs: fix invalid declaration after label in str_hash.c
Posted by Zhou Ding 1 year ago
We get 1 error when building kernel withW=1:
fs/bcachefs/str_hash.c:164:2: error: a label can only be part of a statement and a declaration is not a statement

To resolve this, the code after the found: label was enclosed in a block
to comply with C89 rules, without affecting the logic of the code.

Signed-off-by: Zhou Ding <zhouding@cmss.chinamobile.com>
---
 fs/bcachefs/str_hash.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/bcachefs/str_hash.c b/fs/bcachefs/str_hash.c
index ed3c852fc0be..08625947ed99 100644
--- a/fs/bcachefs/str_hash.c
+++ b/fs/bcachefs/str_hash.c
@@ -160,7 +160,7 @@ static int check_inode_hash_info_matches_root(struct btree_trans *trans, u64 inu
 	bch_err(c, "%s(): inum %llu not found", __func__, inum);
 	ret = -BCH_ERR_fsck_repair_unimplemented;
 	goto err;
-found:
+found:{
 	struct bch_inode_unpacked inode;
 	ret = bch2_inode_unpack(k, &inode);
 	if (ret)
@@ -174,6 +174,7 @@ static int check_inode_hash_info_matches_root(struct btree_trans *trans, u64 inu
 			ret = -BCH_ERR_fsck_repair_unimplemented;
 		}
 	}
+}
 err:
 	bch2_trans_iter_exit(trans, &iter);
 	return ret;
-- 
2.33.0
Re: [PATCH] bcachefs: fix invalid declaration after label in str_hash.c
Posted by Hongbo Li 1 year ago

On 2024/12/12 18:49, Zhou Ding wrote:
> We get 1 error when building kernel withW=1:
> fs/bcachefs/str_hash.c:164:2: error: a label can only be part of a statement and a declaration is not a statement
> 
> To resolve this, the code after the found: label was enclosed in a block
> to comply with C89 rules, without affecting the logic of the code.
> 
> Signed-off-by: Zhou Ding <zhouding@cmss.chinamobile.com>
> ---
>   fs/bcachefs/str_hash.c | 3 ++-
>   1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/fs/bcachefs/str_hash.c b/fs/bcachefs/str_hash.c
> index ed3c852fc0be..08625947ed99 100644
> --- a/fs/bcachefs/str_hash.c
> +++ b/fs/bcachefs/str_hash.c
> @@ -160,7 +160,7 @@ static int check_inode_hash_info_matches_root(struct btree_trans *trans, u64 inu
>   	bch_err(c, "%s(): inum %llu not found", __func__, inum);
>   	ret = -BCH_ERR_fsck_repair_unimplemented;
>   	goto err;
> -found:
It has been fixed in [1].:)

Thanks,
Hongbo

[1] 
https://lore.kernel.org/linux-bcachefs/qnfn3xzh6ve5cukeugxucloynbstf2itos3ddlmzu2w4sp7md7@7bkk2byif2ja/T/#t
> +found:{
>   	struct bch_inode_unpacked inode;
>   	ret = bch2_inode_unpack(k, &inode);
>   	if (ret)
> @@ -174,6 +174,7 @@ static int check_inode_hash_info_matches_root(struct btree_trans *trans, u64 inu
>   			ret = -BCH_ERR_fsck_repair_unimplemented;
>   		}
>   	}
> +}
>   err:
>   	bch2_trans_iter_exit(trans, &iter);
>   	return ret;