btrfs: shut up bogus -Wmaybe-uninitialized warning
authorArnd Bergmann <arnd@arndb.de>
Mon, 17 Jun 2019 11:07:28 +0000 (13:07 +0200)
committerDavid Sterba <dsterba@suse.com>
Tue, 2 Jul 2019 10:30:49 +0000 (12:30 +0200)
gcc sometimes can't determine whether a variable has been initialized
when both the initialization and the use are conditional:

fs/btrfs/props.c: In function 'inherit_props':
fs/btrfs/props.c:389:4: error: 'num_bytes' may be used uninitialized in this function [-Werror=maybe-uninitialized]
    btrfs_block_rsv_release(fs_info, trans->block_rsv,

This code is fine. Unfortunately, I cannot think of a good way to
rephrase it in a way that makes gcc understand this, so I add a bogus
initialization the way one should not.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Reviewed-by: David Sterba <dsterba@suse.com>
[ gcc 8 and 9 don't emit the warning ]
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/props.c

index af109c0ba72075f6561a50132f1046a5d22d5c68..e0469816c678be793d13619d465c54646eef268a 100644 (file)
@@ -337,7 +337,7 @@ static int inherit_props(struct btrfs_trans_handle *trans,
        for (i = 0; i < ARRAY_SIZE(prop_handlers); i++) {
                const struct prop_handler *h = &prop_handlers[i];
                const char *value;
-               u64 num_bytes;
+               u64 num_bytes = 0;
 
                if (!h->inheritable)
                        continue;