- } else {
- if (mode & S_IRWXG) {
- if (role != -1)
- mdd_read_lock(env, obj, role);
- rc = mdd_check_acl(env, obj, la, mask);
- if (role != -1)
- mdd_read_unlock(env, obj);
- if (rc == -EACCES)
- goto check_capabilities;
- else if ((rc != -EAGAIN) && (rc != -EOPNOTSUPP) &&
- (rc != -ENODATA))
- RETURN(rc);
- }
- if (lustre_in_group_p(uc, la->la_gid))
- mode >>= 3;
- }
-
- if (((mode & mask & S_IRWXO) == mask))
- RETURN(0);
+ } else {
+ if (mode & S_IRWXG) {
+ if (role != -1)
+ mdd_read_lock(env, obj, role);
+ rc = mdd_check_acl(env, obj, la, may_mask);
+ if (role != -1)
+ mdd_read_unlock(env, obj);
+ if (rc == -EACCES)
+ goto check_capabilities;
+ else if ((rc != -EAGAIN) && (rc != -EOPNOTSUPP) &&
+ (rc != -ENODATA))
+ RETURN(rc);
+ }
+ if (lustre_in_group_p(uc, la->la_gid))
+ mode >>= 3;
+ }
+
+ if (((mode & may_mask & S_IRWXO) == may_mask))
+ RETURN(0);