/** * Creates a child directory's access ACL and default ACL based on the default ACL. * @param umask child's umask * @return child directory's access ACL and default ACL */ public Pair<AccessControlList, DefaultAccessControlList> generateChildDirACL(Short umask) { AccessControlList acl = generateChildFileACL(umask); DefaultAccessControlList dAcl = new DefaultAccessControlList(acl); dAcl.setEmpty(false); dAcl.mOwningUser = mOwningUser; dAcl.mOwningGroup = mOwningGroup; dAcl.mMode = mMode; if (mExtendedEntries == null) { dAcl.mExtendedEntries = null; } else { dAcl.mExtendedEntries = new ExtendedACLEntries(mExtendedEntries); } return new Pair<>(acl, dAcl); }
short mode = context.isMetadataLoad() ? Mode.createFullAccess().toShort() : newFile.getMode(); if (!dAcl.isEmpty()) { AccessControlList acl = dAcl.generateChildFileACL(mode); newFile.setInternalAcl(acl);