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

From: Khaled Romdhani
Date: Fri Apr 30 2021 - 10:01:39 EST


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 <lkp@xxxxxxxxx>
> > Signed-off-by: Khaled ROMDHANI <khaledromdhani216@xxxxxxxxx>
> > ---
> > 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.