]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ovl: fix bogus -Wmaybe-unitialized warning
authorArnd Bergmann <arnd@arndb.de>
Mon, 17 Jun 2019 12:39:29 +0000 (14:39 +0200)
committerMiklos Szeredi <mszeredi@redhat.com>
Tue, 18 Jun 2019 13:06:16 +0000 (15:06 +0200)
gcc gets a bit confused by the logic in ovl_setup_trap() and
can't figure out whether the local 'trap' variable in the caller
was initialized or not:

fs/overlayfs/super.c: In function 'ovl_fill_super':
fs/overlayfs/super.c:1333:4: error: 'trap' may be used uninitialized in this function [-Werror=maybe-uninitialized]
    iput(trap);
    ^~~~~~~~~~
fs/overlayfs/super.c:1312:17: note: 'trap' was declared here

Reword slightly to make it easier for the compiler to understand.

Fixes: 146d62e5a586 ("ovl: detect overlapping layers")
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
fs/overlayfs/super.c

index 9b18e0f9016a09a81ae71234badf9fcb371bb382..69888df10c908be949fb211b880306afd8a5a171 100644 (file)
@@ -995,8 +995,8 @@ static int ovl_setup_trap(struct super_block *sb, struct dentry *dir,
        int err;
 
        trap = ovl_get_trap_inode(sb, dir);
-       err = PTR_ERR(trap);
-       if (IS_ERR(trap)) {
+       err = PTR_ERR_OR_ZERO(trap);
+       if (err) {
                if (err == -ELOOP)
                        pr_err("overlayfs: conflicting %s path\n", name);
                return err;