• Arnd Bergmann's avatar
    btrfs: avoid uninitialized variable warning · f827ba9a
    Arnd Bergmann authored
    With CONFIG_SMP and CONFIG_PREEMPT both disabled, gcc decides
    to partially inline the get_state_failrec() function but cannot
    figure out that means the failrec pointer is always valid
    if the function returns success, which causes a harmless
    warning:
    
    fs/btrfs/extent_io.c: In function 'clean_io_failure':
    fs/btrfs/extent_io.c:2131:4: error: 'failrec' may be used uninitialized in this function [-Werror=maybe-uninitialized]
    
    This marks get_state_failrec() and set_state_failrec() both
    as 'noinline', which avoids the warning in all cases for me,
    and seems less ugly than adding a fake initialization.
    Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
    Fixes: 47dc196a ("btrfs: use proper type for failrec in extent_state")
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    f827ba9a
extent_io.c 147 KB