Subject: Re: linux-next: vfs/fsnotify trees build warning

From: Dave Chinner <[email-masked]>
Date: Mon, 25 Jan 2010 15:29:25 +1100

On Mon, Jan 25, 2010 at 03:04:56PM +1100, Stephen Rothwell wrote:
> Hi Eric, Al,
> 
> Today's linux-next build (x86_64 allmodconfig) produced these warnings:
> 
> In file included from include/linux/security.h:26,
>                  from fs/xfs/linux-2.6/xfs_iops.c:56:
> include/linux/fsnotify.h: In function 'fsnotify_move':
> include/linux/fsnotify.h:87: warning: pointer targets in initialization differ in signedness
> include/linux/fsnotify.h: In function 'fsnotify_create':
> include/linux/fsnotify.h:154: warning: pointer targets in passing argument 5 of 'fsnotify' differ in signedness
> include/linux/fsnotify_backend.h:300: note: expected 'const char *' but argument is of type 'const unsigned char *'
> include/linux/fsnotify.h: In function 'fsnotify_link':
> include/linux/fsnotify.h:167: warning: pointer targets in passing argument 5 of 'fsnotify' differ in signedness
> include/linux/fsnotify_backend.h:300: note: expected 'const char *' but argument is of type 'const unsigned char *'
> include/linux/fsnotify.h: In function 'fsnotify_mkdir':
> include/linux/fsnotify.h:180: warning: pointer targets in passing argument 5 of 'fsnotify' differ in signedness
> include/linux/fsnotify_backend.h:300: note: expected 'const char *' but argument is of type 'const unsigned char *'
> 
> I am not sure why these started turning up (they were there on Friday as
> well and I may have missed them earlier).

I cleaned up the all the sign warnings in the XFS code because
we mirror the kernel code into userspace for tool building (libxfs)
and that results in lots of sign warnings. I left the kernel
warnings switched on in the XFS makefile so we wouldn't re-introduce
the same problems.

Don't know why this isn't showing up in my build though, because:

CONFIG_FSNOTIFY=y

is set and it is obvious the fsnotify wrappers are passing an
unsigned char * (dentry name) to fsnotify() which takes a const char
* for the file name. There's mismatches like this all over the VFS,
so I'm not going to try to fix them....

The patch below should silence the warnings, though.

Cheers,

Dave.
-- 
Dave Chinner
[email-masked]

xfs: turn off sign warnings

Because they cause warnings in static inline functions conditionally
compiled into XFS from the VFS (e.g. fsnotify).

Signed-off-by: Dave Chinner <[email-masked]>
---
 fs/xfs/Makefile |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/fs/xfs/Makefile b/fs/xfs/Makefile
index 1926701..5c5a366 100644
--- a/fs/xfs/Makefile
+++ b/fs/xfs/Makefile
@@ -16,7 +16,7 @@
 # Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 #
 
-EXTRA_CFLAGS +=	 -I$(src) -I$(src)/linux-2.6 -Wpointer-sign
+EXTRA_CFLAGS +=	 -I$(src) -I$(src)/linux-2.6
 
 XFS_LINUX := linux-2.6