2021-04-27 17:18:23

by Khaled Romdhani

[permalink] [raw]
Subject: [PATCH-V2] fs/btrfs: Fix uninitialized variable

The variable 'zone' is uninitialized which
introduce some build warning.

Reported-by: kernel test robot <[email protected]>
Signed-off-by: Khaled ROMDHANI <[email protected]>
---
v2: catch the init as an assertion
---
fs/btrfs/zoned.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c
index 432509f4b3ac..70c0b1b2ff04 100644
--- a/fs/btrfs/zoned.c
+++ b/fs/btrfs/zoned.c
@@ -144,7 +144,7 @@ static inline u32 sb_zone_number(int shift, int mirror)
case 1: zone = 1ULL << (BTRFS_SB_LOG_FIRST_SHIFT - shift); break;
case 2: zone = 1ULL << (BTRFS_SB_LOG_SECOND_SHIFT - shift); break;
default:
- ASSERT(zone);
+ ASSERT(zone = 0);
break;
}


base-commit: c05b2a58c9ed11bd753f1e64695bd89da715fbaa
--
2.17.1


2021-04-29 14:16:25

by Dan Carpenter

[permalink] [raw]
Subject: Re: [PATCH-V2] fs/btrfs: Fix uninitialized variable

On Tue, Apr 27, 2021 at 06:16:27PM +0100, Khaled ROMDHANI wrote:
> The variable 'zone' is uninitialized which
> introduce some build warning.
>
> Reported-by: kernel test robot <[email protected]>
> Signed-off-by: Khaled ROMDHANI <[email protected]>
> ---
> v2: catch the init as an assertion
> ---
> fs/btrfs/zoned.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c
> index 432509f4b3ac..70c0b1b2ff04 100644
> --- a/fs/btrfs/zoned.c
> +++ b/fs/btrfs/zoned.c
> @@ -144,7 +144,7 @@ static inline u32 sb_zone_number(int shift, int mirror)
> case 1: zone = 1ULL << (BTRFS_SB_LOG_FIRST_SHIFT - shift); break;
> case 2: zone = 1ULL << (BTRFS_SB_LOG_SECOND_SHIFT - shift); break;
> default:
> - ASSERT(zone);
> + ASSERT(zone = 0);

I'm sorry but this doesn't make any kind of sense.

> break;
> }

regards,
dan carpenter

2021-04-30 14:03:02

by Khaled Romdhani

[permalink] [raw]
Subject: Re: [PATCH-V2] fs/btrfs: Fix uninitialized variable

On Thu, Apr 29, 2021 at 05:12:00PM +0300, Dan Carpenter wrote:
> On Tue, Apr 27, 2021 at 06:16:27PM +0100, Khaled ROMDHANI wrote:
> > The variable 'zone' is uninitialized which
> > introduce some build warning.
> >
> > Reported-by: kernel test robot <[email protected]>
> > Signed-off-by: Khaled ROMDHANI <[email protected]>
> > ---
> > v2: catch the init as an assertion
> > ---
> > fs/btrfs/zoned.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/fs/btrfs/zoned.c b/fs/btrfs/zoned.c
> > index 432509f4b3ac..70c0b1b2ff04 100644
> > --- a/fs/btrfs/zoned.c
> > +++ b/fs/btrfs/zoned.c
> > @@ -144,7 +144,7 @@ static inline u32 sb_zone_number(int shift, int mirror)
> > case 1: zone = 1ULL << (BTRFS_SB_LOG_FIRST_SHIFT - shift); break;
> > case 2: zone = 1ULL << (BTRFS_SB_LOG_SECOND_SHIFT - shift); break;
> > default:
> > - ASSERT(zone);
> > + ASSERT(zone = 0);
>
> I'm sorry but this doesn't make any kind of sense.
>
> > break;
> > }
>
> regards,
> dan carpenter
>

The idea behind this is to force the assertion failure
in default when no valid 'mirror' value was entered.
But as all caller pass valid mirror values, this case
will not happen. So, I just fix the warning of the uninitialized
variable 'zone' as reported by the kernel test robot.
Thus I guarantee the failure when 'mirror' was invalid.

If I am wrong, please clarify.

Thanks.