Commit 206b1d09 authored by Ari Savolainen's avatar Ari Savolainen Committed by Al Viro

Fix POSIX ACL permission check

After commit 3567866b: "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: default avatarAri Savolainen <ari.m.savolainen@gmail.com>
Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent c2f340a6
...@@ -186,7 +186,7 @@ static int check_acl(struct inode *inode, int mask) ...@@ -186,7 +186,7 @@ static int check_acl(struct inode *inode, int mask)
/* no ->get_acl() calls in RCU mode... */ /* no ->get_acl() calls in RCU mode... */
if (acl == ACL_NOT_CACHED) if (acl == ACL_NOT_CACHED)
return -ECHILD; 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); acl = get_cached_acl(inode, ACL_TYPE_ACCESS);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment