* [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