Re: [PATCH] zonefs: Use str_plural() to fix Coccinelle warning

From: Damien Le Moal
Date: Sun Apr 07 2024 - 21:48:56 EST


On 4/2/24 19:17, Thorsten Blum wrote:
> Fixes the following Coccinelle/coccicheck warning reported by
> string_choices.cocci:
>
> opportunity for str_plural(zgroup->g_nr_zones)
>
> Signed-off-by: Thorsten Blum <thorsten.blum@xxxxxxxxxx>
> ---
> fs/zonefs/super.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/zonefs/super.c b/fs/zonefs/super.c
> index c6a124e8d565..964fa7f24003 100644
> --- a/fs/zonefs/super.c
> +++ b/fs/zonefs/super.c
> @@ -1048,7 +1048,7 @@ static int zonefs_init_zgroup(struct super_block *sb,
> zonefs_info(sb, "Zone group \"%s\" has %u file%s\n",
> zonefs_zgroup_name(ztype),
> zgroup->g_nr_zones,
> - zgroup->g_nr_zones > 1 ? "s" : "");
> + str_plural(zgroup->g_nr_zones));

Looking at this function definition:

static inline const char *str_plural(size_t num)
{
return num == 1 ? "" : "s";
}

It is wrong: num == 0 should not imply plural. This function needs to be fixed.
E.g. it should be:

static inline const char *str_plural(size_t num)
{
return num <= 1 ? "" : "s";
}

Please fix that first and then we can apply your patch to zonefs.

--
Damien Le Moal
Western Digital Research