Re: [PATCH] btrfs: fix uninitialized variable warning

From: David Sterba
Date: Thu Mar 23 2023 - 22:35:23 EST


On Fri, Mar 24, 2023 at 10:24:55AM +0800, Qu Wenruo wrote:
> On 2023/3/24 10:08, Genjian wrote:
> > From: Genjian Zhang <zhanggenjian@xxxxxxxxxx>
> >
> > compiler warning:
>
> Compiler version please.
>
> >
> > ../fs/btrfs/volumes.c: In function ‘btrfs_init_new_device’:
> > ../fs/btrfs/volumes.c:2703:3: error: ‘seed_devices’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
> > 2703 | btrfs_setup_sprout(fs_info, seed_devices);
> > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> >
> > ../fs/btrfs/send.c: In function ‘get_cur_inode_state’:
> > ../include/linux/compiler.h:70:32: error: ‘right_gen’ may be used uninitialized in this function [-Werror=maybe-uninitialized]
> > 70 | (__if_trace.miss_hit[1]++,1) : \
> > | ^
> > ../fs/btrfs/send.c:1878:6: note: ‘right_gen’ was declared here
> > 1878 | u64 right_gen;
> > | ^~~~~~~~~
> >
> > Initialize the uninitialized variables.
> >
> > Reported-by: k2ci <kernel-bot@xxxxxxxxxx>
> > Signed-off-by: Genjian Zhang <zhanggenjian@xxxxxxxxxx>
> > ---
> > fs/btrfs/send.c | 2 +-
> > fs/btrfs/volumes.c | 2 +-
> > 2 files changed, 2 insertions(+), 2 deletions(-)
> >
> > diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c
> > index e5c963bb873d..af2e153543a5 100644
> > --- a/fs/btrfs/send.c
> > +++ b/fs/btrfs/send.c
> > @@ -1875,7 +1875,7 @@ static int get_cur_inode_state(struct send_ctx *sctx, u64 ino, u64 gen,
> > int left_ret;
> > int right_ret;
> > u64 left_gen;
> > - u64 right_gen;
> > + u64 right_gen = 0;
>
> IIRC this is not my first time explaining why this is a false alert.
>
> Thus please report your compiler version first.

This is probably because of the -Wmaybe-uninitialized we enabled, on
some combination of architecture and compiler. While I'm also interested
in the compiler and version we need to fix the warnings before 6.3 final.
We'd be gettting the warnings and reports/patches, which is wasting
peoples' time, it's not a big deal to initialize the variables. But
still I also want to know which version reports that.