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

From: Khaled Romdhani
Date: Tue Apr 27 2021 - 08:18:13 EST


On Mon, Apr 26, 2021 at 10:19:29PM +0200, David Sterba wrote:
> On Fri, Apr 23, 2021 at 01:42:01PM +0100, Khaled ROMDHANI wrote:
> > The variable 'zone' is uninitialized which
> > introduce some build warning.
> >
> > It is not always set or overwritten within
> > the function. So explicitly initialize it.
> >
> > Reported-by: kernel test robot <lkp@xxxxxxxxx>
> > Signed-off-by: Khaled ROMDHANI <khaledromdhani216@xxxxxxxxx>
> > ---
> > 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..42f99b25127f 100644
> > --- a/fs/btrfs/zoned.c
> > +++ b/fs/btrfs/zoned.c
> > @@ -136,7 +136,7 @@ static int sb_write_pointer(struct block_device *bdev, struct blk_zone *zones,
> > */
> > static inline u32 sb_zone_number(int shift, int mirror)
> > {
> > - u64 zone;
> > + u64 zone = 0;
>
> This is exactly same as v1
> https://lore.kernel.org/linux-btrfs/20210413130604.11487-1-khaledromdhani216@xxxxxxxxx/
>
> It does fix the build warning but does not make sense in the code
> because it would would silently let mirror == 4 pass. I think there was
> enough feedback under the previous posts how to fix that properly.

Yes, it fixes the build warning. I implemented a tiny test
program before sending the patch. In which I explicitly
set 'm=5' to check the change results:

[356843.099365] assertion failed: z, in /home/khaled/fs_btrfs/test3.c:30

>From the above output message, I think that it catchs the assertion.
Sorry, but let me know if I am missing something.

I absolutly agree with you regarding the waste of memory
when doing some pointless initializations. I will, come
back with a V2.

Thanks.