This is a note to let you know that I've just added the patch titled gfs2: avoid uninitialized variable warning to the 3.18-stable tree which can be found at: http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary The filename of the patch is: gfs2-avoid-uninitialized-variable-warning.patch and it can be found in the queue-3.18 subdirectory. If you, or anyone else, feels it should not be added to the stable tree, please let <stable@xxxxxxxxxxxxxxx> know about it. >From 67893f12e5374bbcaaffbc6e570acbc2714ea884 Mon Sep 17 00:00:00 2001 From: Arnd Bergmann <arnd@xxxxxxxx> Date: Tue, 26 Jan 2016 13:08:10 -0500 Subject: gfs2: avoid uninitialized variable warning From: Arnd Bergmann <arnd@xxxxxxxx> commit 67893f12e5374bbcaaffbc6e570acbc2714ea884 upstream. We get a bogus warning about a potential uninitialized variable use in gfs2, because the compiler does not figure out that we never use the leaf number if get_leaf_nr() returns an error: fs/gfs2/dir.c: In function 'get_first_leaf': fs/gfs2/dir.c:802:9: warning: 'leaf_no' may be used uninitialized in this function [-Wmaybe-uninitialized] fs/gfs2/dir.c: In function 'dir_split_leaf': fs/gfs2/dir.c:1021:8: warning: 'leaf_no' may be used uninitialized in this function [-Wmaybe-uninitialized] Changing the 'if (!error)' to 'if (!IS_ERR_VALUE(error))' is sufficient to let gcc understand that this is exactly the same condition as in IS_ERR() so it can optimize the code path enough to understand it. Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> Signed-off-by: Bob Peterson <rpeterso@xxxxxxxxxx> Signed-off-by: Greg Kroah-Hartman <gregkh@xxxxxxxxxxxxxxxxxxx> --- fs/gfs2/dir.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) --- a/fs/gfs2/dir.c +++ b/fs/gfs2/dir.c @@ -764,7 +764,7 @@ static int get_first_leaf(struct gfs2_in int error; error = get_leaf_nr(dip, index, &leaf_no); - if (!error) + if (!IS_ERR_VALUE(error)) error = get_leaf(dip, leaf_no, bh_out); return error; @@ -980,7 +980,7 @@ static int dir_split_leaf(struct inode * index = name->hash >> (32 - dip->i_depth); error = get_leaf_nr(dip, index, &leaf_no); - if (error) + if (IS_ERR_VALUE(error)) return error; /* Get the old leaf block */ Patches currently in stable-queue which might be from arnd@xxxxxxxx are queue-3.18/net-vxge-avoid-unused-function-warnings.patch queue-3.18/tty-nozomi-avoid-a-harmless-gcc-warning.patch queue-3.18/perf-avoid-horrible-stack-usage.patch queue-3.18/btrfs-fix-state-private-cast-on-32-bit-machines.patch queue-3.18/mm-init-fix-zone-boundary-creation.patch queue-3.18/iommu-vt-d-remove-unused-variable.patch queue-3.18/mips-msp71xx-remove-odd-locking-in-pci-config-space-access-code.patch queue-3.18/net-tulip-turn-compile-time-warning-into-dev_warn.patch queue-3.18/nfsd-work-around-a-gcc-5.1-warning.patch queue-3.18/fs-nfs-fix-new-compiler-warning-about-boolean-in-switch.patch queue-3.18/aic94xx-skip-reading-user-settings-if-flash-is-not-found.patch queue-3.18/mmc-sunxi-avoid-invalid-pointer-calculation.patch queue-3.18/acpi-power-avoid-maybe-uninitialized-warning.patch queue-3.18/gfs2-avoid-uninitialized-variable-warning.patch queue-3.18/gadgetfs-fix-uninitialized-variable-in-error-handling.patch queue-3.18/arm-8296-1-cache-l2x0-clean-up-aurora-cache-handling.patch queue-3.18/brcmfmac-avoid-gcc-5.1-warning.patch queue-3.18/kconfig-tinyconfig-provide-whole-choice-blocks-to-avoid-warnings.patch queue-3.18/net-ti-cpmac-fix-compiler-warning-due-to-type-confusion.patch queue-3.18/clk-at91-usb-fix-determine_rate-prototype-again.patch queue-3.18/mips-ralink-cosmetic-change-to-prom_init.patch queue-3.18/mips-fix-the-build-on-jz4740-after-removing-the-custom-gpio.h.patch queue-3.18/mips-asm-compiler-add-new-macros-to-set-isa-and-arch-asm-annotations.patch queue-3.18/misc-ioc4-simplify-wave-period-measurement-in-clock_calibrate.patch queue-3.18/hostap-avoid-uninitialized-variable-use-in-hfa384x_get_rid.patch queue-3.18/dm-bufio-hide-bogus-warning.patch queue-3.18/fix-signed-unsigned-pointer-warning.patch