diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2008-07-17 09:19:08 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2008-07-26 20:53:21 -0400 |
commit | a110343f0d6d41f68b7cf8c00b57a3172c67f816 (patch) | |
tree | 04f57e3454e796765a7395d2ece4739cf536ae9f /include/linux | |
parent | 7f2da1e7d0330395e5e9e350b879b98a1ea495df (diff) |
[PATCH] fix MAY_CHDIR/MAY_ACCESS/LOOKUP_ACCESS mess
* MAY_CHDIR is redundant - it's an equivalent of MAY_ACCESS
* MAY_ACCESS on fuse should affect only the last step of pathname resolution
* fchdir() and chroot() should pass MAY_ACCESS, for the same reason why
chdir() needs that.
* now that we pass MAY_ACCESS explicitly in all cases, LOOKUP_ACCESS can be
removed; it has no business being in nameidata.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/fs.h | 3 | ||||
-rw-r--r-- | include/linux/namei.h | 1 |
2 files changed, 1 insertions, 3 deletions
diff --git a/include/linux/fs.h b/include/linux/fs.h index 25998e803fc2..d8721e818b45 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h | |||
@@ -61,8 +61,7 @@ extern int dir_notify_enable; | |||
61 | #define MAY_READ 4 | 61 | #define MAY_READ 4 |
62 | #define MAY_APPEND 8 | 62 | #define MAY_APPEND 8 |
63 | #define MAY_ACCESS 16 | 63 | #define MAY_ACCESS 16 |
64 | #define MAY_CHDIR 32 | 64 | #define MAY_OPEN 32 |
65 | #define MAY_OPEN 64 | ||
66 | 65 | ||
67 | #define FMODE_READ 1 | 66 | #define FMODE_READ 1 |
68 | #define FMODE_WRITE 2 | 67 | #define FMODE_WRITE 2 |
diff --git a/include/linux/namei.h b/include/linux/namei.h index 768773d57857..60e35a02f6cb 100644 --- a/include/linux/namei.h +++ b/include/linux/namei.h | |||
@@ -53,7 +53,6 @@ enum {LAST_NORM, LAST_ROOT, LAST_DOT, LAST_DOTDOT, LAST_BIND}; | |||
53 | */ | 53 | */ |
54 | #define LOOKUP_OPEN (0x0100) | 54 | #define LOOKUP_OPEN (0x0100) |
55 | #define LOOKUP_CREATE (0x0200) | 55 | #define LOOKUP_CREATE (0x0200) |
56 | #define LOOKUP_ACCESS (0x0400) | ||
57 | 56 | ||
58 | extern int __user_walk(const char __user *, unsigned, struct nameidata *); | 57 | extern int __user_walk(const char __user *, unsigned, struct nameidata *); |
59 | extern int __user_walk_fd(int dfd, const char __user *, unsigned, struct nameidata *); | 58 | extern int __user_walk_fd(int dfd, const char __user *, unsigned, struct nameidata *); |