Commit 84db6603 authored by Arjan van de Ven's avatar Arjan van de Ven Committed by Linus Torvalds

[PATCH] produce a warning on unchecked inode_setattr use

The patch below uses the new-in-gcc-3.4 option to generate a warning on
unchecked results of marked functions, and applies this to the
inode_setattr function (which based on recent bk commits HAS to be checked
for it's return value for correct operation).  A warning looks like this:

fs/ext2/inode.c:1279: warning: ignoring return value of 'inode_setattr', declared with attribute warn_unused_result
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 19995e25
...@@ -13,3 +13,4 @@ ...@@ -13,3 +13,4 @@
#define __attribute_used__ __attribute__((__used__)) #define __attribute_used__ __attribute__((__used__))
#define __attribute_pure__ __attribute__((pure)) #define __attribute_pure__ __attribute__((pure))
#define __attribute_const__ __attribute__((__const__)) #define __attribute_const__ __attribute__((__const__))
#define __must_check __attribute__((warn_unused_result))
...@@ -25,3 +25,6 @@ ...@@ -25,3 +25,6 @@
#if __GNUC_MINOR__ >= 1 #if __GNUC_MINOR__ >= 1
#define noinline __attribute__((noinline)) #define noinline __attribute__((noinline))
#endif #endif
#if __GNUC_MINOR__ >= 4
#define __must_check __attribute__((warn_unused_result))
#endif
...@@ -69,6 +69,10 @@ extern void __chk_user_ptr(void __user *); ...@@ -69,6 +69,10 @@ extern void __chk_user_ptr(void __user *);
# define __deprecated /* unimplemented */ # define __deprecated /* unimplemented */
#endif #endif
#ifndef __must_check
#define __must_check
#endif
/* /*
* Allow us to avoid 'defined but not used' warnings on functions and data, * Allow us to avoid 'defined but not used' warnings on functions and data,
* as well as force them to be emitted to the assembly file. * as well as force them to be emitted to the assembly file.
......
...@@ -1521,7 +1521,7 @@ extern int simple_pin_fs(char *name, struct vfsmount **mount, int *count); ...@@ -1521,7 +1521,7 @@ extern int simple_pin_fs(char *name, struct vfsmount **mount, int *count);
extern void simple_release_fs(struct vfsmount **mount, int *count); extern void simple_release_fs(struct vfsmount **mount, int *count);
extern int inode_change_ok(struct inode *, struct iattr *); extern int inode_change_ok(struct inode *, struct iattr *);
extern int inode_setattr(struct inode *, struct iattr *); extern int __must_check inode_setattr(struct inode *, struct iattr *);
extern void inode_update_time(struct inode *inode, int ctime_too); extern void inode_update_time(struct inode *inode, int ctime_too);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment