btrfs: avoid uninitialized variable warning
authorArnd Bergmann <arnd@arndb.de>
Mon, 22 Feb 2016 21:53:20 +0000 (22:53 +0100)
committerDavid Sterba <dsterba@suse.com>
Tue, 23 Feb 2016 11:42:46 +0000 (12:42 +0100)
commitf827ba9a641b481f01d1bdc0771a7afc3776cc0b
tree22ec5eb60e8b2210d3458b2565e1189ce8e89acd
parent5598e9005a4076d6700bbd89d0cdbe5b2922a846
btrfs: avoid uninitialized variable warning

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: Arnd Bergmann <arnd@arndb.de>
Fixes: 47dc196ae719 ("btrfs: use proper type for failrec in extent_state")
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/extent_io.c