[PATCH 4/4] xfs: increase number of ACL entries for V5 superblocks

Mark Tinguely tinguely at sgi.com
Wed Jun 5 08:38:19 CDT 2013


On 06/05/13 08:26, Mark Tinguely wrote:
 > On 06/04/13 21:09, Dave Chinner wrote:
 >> From: Dave Chinner<dchinner at redhat.com>
 >>
 >> The limit of 25 ACL entries is arbitrary, but baked into the on-disk
 >> format. For version 5 superblocks, increase it to the maximum nuber
 >> of ACLs that can fit into a single xattr.
 >>
 >> Signed-off-by: Dave Chinner<dchinner at redhat.com>
 >> Reviewed-by: Brian Foster<bfoster at redhat.com>
 >> ---
 >
 >> /* On-disk XFS access control list structure */
 >> +struct xfs_acl_entry {
 >> + __be32 ae_tag;
 >> + __be32 ae_id;
 >> + __be16 ae_perm;
 >> + __be16 ae_pad; /* fill the implicit hole in the structure */
 >> +};
 >> +
 >> struct xfs_acl {
 >> - __be32 acl_cnt;
 >> - struct xfs_acl_entry {
 >> - __be32 ae_tag;
 >> - __be32 ae_id;
 >> - __be16 ae_perm;
 >> - } acl_entry[XFS_ACL_MAX_ENTRIES];
 >> + __be32 acl_cnt;
 >> + struct xfs_acl_entry acl_entry[0];
 >> };
 >>
 >> +/*
 >> + * The number of ACL entries allowed is defined by the on-disk format.
 >> + * For v4 superblocks, that is limited to 25 entries. For v5
 >> superblocks, it is
 >> + * limited only by the maximum size of the xattr that stores the
 >> information.
 >> + */
 >> +#define XFS_ACL_MAX_ENTRIES(mp) \
 >> + (xfs_sb_version_hascrc(&mp->m_sb) \
 >> + ? (XATTR_SIZE_MAX - sizeof(struct xfs_acl)) / \
 >> + sizeof(struct xfs_acl_entry) \
 >> + : 25)
 >> +
 >> +#define XFS_ACL_MAX_SIZE(mp) \
 >> + (sizeof(struct xfs_acl) + \
 >> + sizeof(struct xfs_acl_entry) * XFS_ACL_MAX_ENTRIES((mp)))
 >> +
 >> /* On-disk XFS extended attribute names */
 >> #define SGI_ACL_FILE (unsigned char *)"SGI_ACL_FILE"
 >> #define SGI_ACL_DEFAULT (unsigned char *)"SGI_ACL_DEFAULT"
 >
 > I thought you would leave the XFS_ACL_MAX_ENTRIES(mp) as:
 >

...

never mind, now I get it "struct xfs_acl_entry  acl_entry[0]" reserves
no space.

Reviewed-by: Mark Tinguely <tinuguely at sgi.com>




More information about the xfs mailing list