On Wed, Dec 26, 2012 at 11:15:19AM +0800, Chen Gang wrote: > > checking the ext3_acl_size, it does not like what you said above. > but we can say, the design for ext3_acl_size is really not quit well. > (maybe can cause issue). Ah, I see. What's there is OK, but it's not at all obvious that it's OK. A valid acl must have a very specific order of tags, as enforced by posix_acl_valid() in fs/posix_acl.c: ACL_USER_OBJ ACL_USER*[1] ACL_GROUP_OBJ ACL_GROUP*[1] ACL_MASK[2] ACL_OTHER [1] Where * is the regexp sense of "0 or more times" [2] Only if there is at least one ACL_USER or ACL_GROUP tag; otherwise skip ACL_MASK. Hence, a valid acl can have at most 4 short acl entry types (ACL_USER_OBJ, ACL_GROUP, ACL_MASK, and ACL_OTHER), and if there is less than 4 acl entries, they must all be short acl types. All I can say is, this is a horrible way of coding things, and I wish this was documented explicitly somewhere either in fs/posix_acl.c or in include/linux/posix_acl.h. Yuck, yuck, yuck.... - Ted -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html