From: Arnd Bergmann Date: Mon, 17 Jun 2019 12:39:29 +0000 (+0200) Subject: ovl: fix bogus -Wmaybe-unitialized warning X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=1dac6f5b0ed2601be21bb4e27a44b0c3e667b7f4;p=linux.git ovl: fix bogus -Wmaybe-unitialized warning 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 Signed-off-by: Miklos Szeredi --- diff --git a/fs/overlayfs/super.c b/fs/overlayfs/super.c index 9b18e0f9016a0..69888df10c908 100644 --- a/fs/overlayfs/super.c +++ b/fs/overlayfs/super.c @@ -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;