On Thu, Nov 15, 2018 at 03:00:21PM +0100, David Sterba wrote:
> On Wed, Nov 14, 2018 at 09:28:34AM +0800, Anand Jain wrote:
> > >>          mutex_unlock(&dev_replace->lock_finishing_cancel_unmount);
> > >>          return result;
> > > 
> > > There's a compiler warning:
> > > 
> > > fs/btrfs/dev-replace.c: In function ‘btrfs_dev_replace_cancel’:
> > > fs/btrfs/dev-replace.c:865:9: warning: ‘result’ may be used uninitialized 
> > > in this function [-Wmaybe-uninitialized]
> > >    return result;
> > >           ^~~~~~
> > 
> > > I haven't looked closer though it looks valid.
> > 
> > int result; is assigned within switch(), so there isn't actual problem. 
> 
> The warning is there because switch (dev_replace->replace_state) does
> not have a default: case that would catch the values outside of what's
> defined by the enum. So in that case result would have undefined value.
> 
> > But will initialize the result to -EINVAL to quite the compiler.
> > Sending v3.
> 
> I don't see any change in the followup version.
> https://patchwork.kernel.org/patch/10681939/

I've added

        default:
                result = -EINVAL;

to the end of the switch.

Reply via email to