summaryrefslogtreecommitdiff
path: root/fs
diff options
context:
space:
mode:
authorAri Savolainen <ari.m.savolainen@gmail.com>2011-08-06 19:43:07 +0300
committerAl Viro <viro@zeniv.linux.org.uk>2011-08-07 04:52:23 -0400
commit206b1d09a56dcd2db1052245c4131879c410eaf8 (patch)
tree86a5d67b10c8736b47323cde7717068e98a023e1 /fs
parentc2f340a69cabe0fb7b9f02d1a2495927db225a06 (diff)
downloadlinux-3.10-206b1d09a56dcd2db1052245c4131879c410eaf8.tar.gz
linux-3.10-206b1d09a56dcd2db1052245c4131879c410eaf8.tar.bz2
linux-3.10-206b1d09a56dcd2db1052245c4131879c410eaf8.zip
Fix POSIX ACL permission check
After commit 3567866bf261: "RCUify freeing acls, let check_acl() go ahead in RCU mode if acl is cached" posix_acl_permission is being called with an unsupported flag and the permission check fails. This patch fixes the issue. Signed-off-by: Ari Savolainen <ari.m.savolainen@gmail.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'fs')
-rw-r--r--fs/namei.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/namei.c b/fs/namei.c
index 4a98bf154d8..fc13609a354 100644
--- a/fs/namei.c
+++ b/fs/namei.c
@@ -186,7 +186,7 @@ static int check_acl(struct inode *inode, int mask)
/* no ->get_acl() calls in RCU mode... */
if (acl == ACL_NOT_CACHED)
return -ECHILD;
- return posix_acl_permission(inode, acl, mask);
+ return posix_acl_permission(inode, acl, mask & ~MAY_NOT_BLOCK);
}
acl = get_cached_acl(inode, ACL_TYPE_ACCESS);