[ https://issues.apache.org/jira/browse/HDFS-5758?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Chris Nauroth updated HDFS-5758: -------------------------------- Attachment: HDFS-5758.5.patch Here is patch version 5. bq. I'm not sure why includeBaseEntries is needed. It seems the parameter is contradicted with the description of the function (which is returning the logical ACLs). Good catch on the JavaDoc contradiction. All of the ACL modification logic (the public static methods in {{AclTransformation}}) need to see the full existing logical ACL in order to work correctly. For {{getAclStatus}}, we're now saying that the result filters out the base ACL entries. To make this distinction clearer, I've split out separate methods in {{AclStorage}}: {{readINodeLogicalAcl}} and {{readINodeAcl}}. I think this helps clarify intent in the calling code better than passing an extra flag to manipulate the behavior. bq. It seems that there might be out of bound access here. This won't go out of bounds as long as the ACL has at least 3 entries. A valid logical ACL must have at least 3 entries (the 3 entries inferred from permission bits). This invariant is enforced by {{FSDirectory}} always retrieving the existing logical ACL and {{AclTransformation}} always producing a valid logical ACL after modification. Note that there is also an assert at the top of {{updateINodeAcl}} to check that these invariants have been enforced on the inputs. > NameNode: complete implementation of inode modifications for ACLs. > ------------------------------------------------------------------ > > Key: HDFS-5758 > URL: https://issues.apache.org/jira/browse/HDFS-5758 > Project: Hadoop HDFS > Issue Type: Sub-task > Components: namenode > Affects Versions: HDFS ACLs (HDFS-4685) > Reporter: Chris Nauroth > Assignee: Chris Nauroth > Attachments: HDFS-5758.1.patch, HDFS-5758.2.patch, HDFS-5758.3.patch, > HDFS-5758.4.patch, HDFS-5758.5.patch > > > This patch will complete the remaining logic for the ACL get and set APIs, > including remaining work in {{FSNamesystem}}, {{FSDirectory}} and storage in > the inodes. -- This message was sent by Atlassian JIRA (v6.1.5#6160)