* [PATCH 1/2] vfs: remove a warning on OPEN_FMODE()
@ 2010-09-28 8:27 Namhyung Kim
2010-09-28 8:27 ` [PATCH 2/2] vfs: add __FMODE_EXEC Namhyung Kim
0 siblings, 1 reply; 2+ messages in thread
From: Namhyung Kim @ 2010-09-28 8:27 UTC (permalink / raw)
To: Alexander Viro, Eric Paris, Andrew Morton; +Cc: linux-fsdevel, linux-kernel
AND-ing FMODE_* constant with normal integer results in following
sparse warnings. Fix it.
fs/open.c:662:21: warning: restricted fmode_t degrades to integer
fs/anon_inodes.c:123:34: warning: restricted fmode_t degrades to integer
Signed-off-by: Namhyung Kim <namhyung@gmail.com>
---
include/linux/fs.h | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/include/linux/fs.h b/include/linux/fs.h
index 63d069b..e60f9b1 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -2477,9 +2477,11 @@ int proc_nr_files(struct ctl_table *table, int write,
int __init get_filesystem_list(char *buf);
+#define __FMODE_NONOTIFY ((__force int) FMODE_NONOTIFY)
+
#define ACC_MODE(x) ("\004\002\006\006"[(x)&O_ACCMODE])
#define OPEN_FMODE(flag) ((__force fmode_t)(((flag + 1) & O_ACCMODE) | \
- (flag & FMODE_NONOTIFY)))
+ (flag & __FMODE_NONOTIFY)))
#endif /* __KERNEL__ */
#endif /* _LINUX_FS_H */
--
1.7.2.2
^ permalink raw reply related [flat|nested] 2+ messages in thread
* [PATCH 2/2] vfs: add __FMODE_EXEC
2010-09-28 8:27 [PATCH 1/2] vfs: remove a warning on OPEN_FMODE() Namhyung Kim
@ 2010-09-28 8:27 ` Namhyung Kim
0 siblings, 0 replies; 2+ messages in thread
From: Namhyung Kim @ 2010-09-28 8:27 UTC (permalink / raw)
To: Alexander Viro, Eric Paris, Andrew Morton; +Cc: linux-fsdevel, linux-kernel
FMODE_EXEC is a constant type of fmode_t but was used with normal
integer constants. This results in following warnings from sparse.
Fix it using new macro __FMODE_EXEC.
fs/exec.c:116:58: warning: restricted fmode_t degrades to integer
fs/exec.c:689:58: warning: restricted fmode_t degrades to integer
fs/fcntl.c:777:9: warning: restricted fmode_t degrades to integer
Signed-off-by: Namhyung Kim <namhyung@gmail.com>
---
fs/exec.c | 4 ++--
fs/fcntl.c | 2 +-
include/linux/fs.h | 1 +
3 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/fs/exec.c b/fs/exec.c
index 828dd24..e88d0f1 100644
--- a/fs/exec.c
+++ b/fs/exec.c
@@ -113,7 +113,7 @@ SYSCALL_DEFINE1(uselib, const char __user *, library)
goto out;
file = do_filp_open(AT_FDCWD, tmp,
- O_LARGEFILE | O_RDONLY | FMODE_EXEC, 0,
+ O_LARGEFILE | O_RDONLY | __FMODE_EXEC, 0,
MAY_READ | MAY_EXEC | MAY_OPEN);
putname(tmp);
error = PTR_ERR(file);
@@ -686,7 +686,7 @@ struct file *open_exec(const char *name)
int err;
file = do_filp_open(AT_FDCWD, name,
- O_LARGEFILE | O_RDONLY | FMODE_EXEC, 0,
+ O_LARGEFILE | O_RDONLY | __FMODE_EXEC, 0,
MAY_EXEC | MAY_OPEN);
if (IS_ERR(file))
goto out;
diff --git a/fs/fcntl.c b/fs/fcntl.c
index f8cc34f..d6e735d 100644
--- a/fs/fcntl.c
+++ b/fs/fcntl.c
@@ -781,7 +781,7 @@ static int __init fcntl_init(void)
__O_SYNC | O_DSYNC | FASYNC |
O_DIRECT | O_LARGEFILE | O_DIRECTORY |
O_NOFOLLOW | O_NOATIME | O_CLOEXEC |
- FMODE_EXEC
+ __FMODE_EXEC
));
fasync_cache = kmem_cache_create("fasync_cache",
diff --git a/include/linux/fs.h b/include/linux/fs.h
index e60f9b1..25c0cc1 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -2477,6 +2477,7 @@ int proc_nr_files(struct ctl_table *table, int write,
int __init get_filesystem_list(char *buf);
+#define __FMODE_EXEC ((__force int) FMODE_EXEC)
#define __FMODE_NONOTIFY ((__force int) FMODE_NONOTIFY)
#define ACC_MODE(x) ("\004\002\006\006"[(x)&O_ACCMODE])
--
1.7.2.2
^ permalink raw reply related [flat|nested] 2+ messages in thread
end of thread, other threads:[~2010-09-28 8:27 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-09-28 8:27 [PATCH 1/2] vfs: remove a warning on OPEN_FMODE() Namhyung Kim
2010-09-28 8:27 ` [PATCH 2/2] vfs: add __FMODE_EXEC Namhyung Kim
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).