Messages in this thread | | | From | Souptick Joarder <> | Date | Tue, 22 Feb 2022 13:20:45 +0530 | Subject | Re: [PATCH] btrfs: Initialize ret to 0 in scrub_simple_mirror() |
| |
On Mon, Feb 21, 2022 at 5:46 AM Qu Wenruo <quwenruo.btrfs@gmx.com> wrote: > > > > On 2022/2/20 22:46, Souptick Joarder wrote: > > From: "Souptick Joarder (HPE)" <jrdr.linux@gmail.com> > > > > Kernel test robot reported below warning -> > > fs/btrfs/scrub.c:3439:2: warning: Undefined or garbage value > > returned to caller [clang-analyzer-core.uninitialized.UndefReturn] > > > > Initialize ret to 0. > > > > Reported-by: kernel test robot <lkp@intel.com> > > Signed-off-by: Souptick Joarder (HPE) <jrdr.linux@gmail.com> > > Although the patch is not yet merged, but I have to say, it's a false alert.
Yes, I agree it is a false positive but this patch will at least keep kernel test robot happy :) > > Firstly, the while loop will always get at least one run. > > Secondly, in that loop, we either set ret to some error value and break, > or after at least one find_first_extent_item() and scrub_extent() call, > we increase cur_logical and reached the limit of the while loop and exit. > > So there is no possible routine to leave @ret uninitialized and returned > to caller. > > Thanks, > Qu > > > --- > > fs/btrfs/scrub.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/fs/btrfs/scrub.c b/fs/btrfs/scrub.c > > index 4baa8e43d585..5ca7e5ffbc96 100644 > > --- a/fs/btrfs/scrub.c > > +++ b/fs/btrfs/scrub.c > > @@ -3325,7 +3325,7 @@ static int scrub_simple_mirror(struct scrub_ctx *sctx, > > const u32 max_length = SZ_64K; > > struct btrfs_path path = {}; > > u64 cur_logical = logical_start; > > - int ret; > > + int ret = 0; > > > > /* The range must be inside the bg */ > > ASSERT(logical_start >= bg->start &&
| |