diff --git a/[refs] b/[refs] index d7f7f7a47e82..5ee5628a2fcf 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 72c04902d1e27c8a324014cff1d4475c11b1cecd +refs/heads/master: d5bb68adda7cc179e8efadeaa3a283cb470f13a6 diff --git a/trunk/fs/jfs/acl.c b/trunk/fs/jfs/acl.c index f272bf032e1e..91fa3ad6e8c2 100644 --- a/trunk/fs/jfs/acl.c +++ b/trunk/fs/jfs/acl.c @@ -118,15 +118,16 @@ static int jfs_set_acl(tid_t tid, struct inode *inode, int type, static int jfs_check_acl(struct inode *inode, int mask) { - if (inode->i_acl == ACL_NOT_CACHED) { - struct posix_acl *acl = jfs_get_acl(inode, ACL_TYPE_ACCESS); - if (IS_ERR(acl)) - return PTR_ERR(acl); + struct posix_acl *acl = jfs_get_acl(inode, ACL_TYPE_ACCESS); + + if (IS_ERR(acl)) + return PTR_ERR(acl); + if (acl) { + int error = posix_acl_permission(inode, acl, mask); posix_acl_release(acl); + return error; } - if (inode->i_acl) - return posix_acl_permission(inode, inode->i_acl, mask); return -EAGAIN; }