diff options
| -rw-r--r-- | fs/jfs/acl.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/fs/jfs/acl.c b/fs/jfs/acl.c index f272bf032e1e..91fa3ad6e8c2 100644 --- a/fs/jfs/acl.c +++ b/fs/jfs/acl.c | |||
| @@ -118,15 +118,16 @@ out: | |||
| 118 | 118 | ||
| 119 | static int jfs_check_acl(struct inode *inode, int mask) | 119 | static int jfs_check_acl(struct inode *inode, int mask) |
| 120 | { | 120 | { |
| 121 | if (inode->i_acl == ACL_NOT_CACHED) { | 121 | struct posix_acl *acl = jfs_get_acl(inode, ACL_TYPE_ACCESS); |
| 122 | struct posix_acl *acl = jfs_get_acl(inode, ACL_TYPE_ACCESS); | 122 | |
| 123 | if (IS_ERR(acl)) | 123 | if (IS_ERR(acl)) |
| 124 | return PTR_ERR(acl); | 124 | return PTR_ERR(acl); |
| 125 | if (acl) { | ||
| 126 | int error = posix_acl_permission(inode, acl, mask); | ||
| 125 | posix_acl_release(acl); | 127 | posix_acl_release(acl); |
| 128 | return error; | ||
| 126 | } | 129 | } |
| 127 | 130 | ||
| 128 | if (inode->i_acl) | ||
| 129 | return posix_acl_permission(inode, inode->i_acl, mask); | ||
| 130 | return -EAGAIN; | 131 | return -EAGAIN; |
| 131 | } | 132 | } |
| 132 | 133 | ||
