于 2012年12月26日 12:45, Theodore Ts'o 写道: > 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 learned. :-) also better to give a comment above the function ext3_acl_size. thanks. -- Chen Gang Asianux Corporation -- 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