]> git.karo-electronics.de Git - karo-tx-linux.git/commit
vfs: bogus warnings in fs/namei.c
authorArnd Bergmann <arnd@arndb.de>
Thu, 11 Oct 2012 13:20:00 +0000 (13:20 +0000)
committerAl Viro <viro@zeniv.linux.org.uk>
Thu, 11 Oct 2012 15:42:20 +0000 (11:42 -0400)
commitbe889084d4a93ad1508ad57bf33beaed936b3345
treec0682d683836422d16bf56f706302136fb53b09b
parent5804bc88667ed5200795474062e8c24aac8ad41f
vfs: bogus warnings in fs/namei.c

The follow_link() function always initializes its *p argument,
or returns an error, but when building with 'gcc -s', the compiler
gets confused by the __always_inline attribute to the function
and can no longer detect where the cookie was initialized.

The solution is to always initialize the pointer from follow_link,
even in the error path. When building with -O2, this has zero impact
on generated code and adds a single instruction in the error path
for a -Os build on ARM.

Without this patch, building with gcc-4.6 through gcc-4.8 and
CONFIG_CC_OPTIMIZE_FOR_SIZE results in:

fs/namei.c: In function 'link_path_walk':
fs/namei.c:649:24: warning: 'cookie' may be used uninitialized in this function [-Wuninitialized]
fs/namei.c:1544:9: note: 'cookie' was declared here
fs/namei.c: In function 'path_lookupat':
fs/namei.c:649:24: warning: 'cookie' may be used uninitialized in this function [-Wuninitialized]
fs/namei.c:1934:10: note: 'cookie' was declared here
fs/namei.c: In function 'path_openat':
fs/namei.c:649:24: warning: 'cookie' may be used uninitialized in this function [-Wuninitialized]
fs/namei.c:2899:9: note: 'cookie' was declared here

Signed-off-by: Arnd Bergmann <arnd@arndb.de>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/namei.c