diff options
author | Eric Paris <eparis@redhat.com> | 2010-07-23 11:43:51 -0400 |
---|---|---|
committer | James Morris <jmorris@namei.org> | 2010-08-02 01:35:06 -0400 |
commit | 9cfcac810e8993fa7a5bfd24b1a21f1dbbb03a7b (patch) | |
tree | 86fae80c744e46b15b8eb9aa23fead7e63a64159 /fs/nfs/dir.c | |
parent | 692a8a231b212dfc68f612956d63f34abf098e0f (diff) |
vfs: re-introduce MAY_CHDIR
Currently MAY_ACCESS means that filesystems must check the permissions
right then and not rely on cached results or the results of future
operations on the object. This can be because of a call to sys_access() or
because of a call to chdir() which needs to check search without relying on
any future operations inside that dir. I plan to use MAY_ACCESS for other
purposes in the security system, so I split the MAY_ACCESS and the
MAY_CHDIR cases.
Signed-off-by: Eric Paris <eparis@redhat.com>
Acked-by: Stephen D. Smalley <sds@tycho.nsa.gov>
Signed-off-by: James Morris <jmorris@namei.org>
Diffstat (limited to 'fs/nfs/dir.c')
-rw-r--r-- | fs/nfs/dir.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c index e60416d3f818..832e9e239324 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c | |||
@@ -1953,7 +1953,7 @@ int nfs_permission(struct inode *inode, int mask) | |||
1953 | if ((mask & (MAY_READ | MAY_WRITE | MAY_EXEC)) == 0) | 1953 | if ((mask & (MAY_READ | MAY_WRITE | MAY_EXEC)) == 0) |
1954 | goto out; | 1954 | goto out; |
1955 | /* Is this sys_access() ? */ | 1955 | /* Is this sys_access() ? */ |
1956 | if (mask & MAY_ACCESS) | 1956 | if (mask & (MAY_ACCESS | MAY_CHDIR)) |
1957 | goto force_lookup; | 1957 | goto force_lookup; |
1958 | 1958 | ||
1959 | switch (inode->i_mode & S_IFMT) { | 1959 | switch (inode->i_mode & S_IFMT) { |