Re: [PATCH v10 38/46] richacl: Add support for unmapped identifiers

Dave Chinner
2015-10-12T00:22:22Z

On Mon, Oct 12, 2015 at 12:58:49AM +0200, Andreas Gruenbacher wrote:
> From: Andreas Gruenbacher <agruenba@redhat.com>
>
> Some remote file systems like nfs may return user or group identifiers
> that cannot be mapped to local uids / gids. Allow to represent such
> unmapped identifiers in richacls. (We still cannot represent unmapped
> owners and owning groups, however.)
>
> In the in-memory representation, the richacl is followed by a list of
> NUL-terminated strings, with no padding. Entries with an unmapped
> identifier have the RICHACE_UNMAPPED_WHO flag set, and ace->e_id.offs
> specifies the offset into this list. Multiple entries can refer to the
> same offset.
>
> The xattr representation is similar, but ace->e_id is ignored, and the
> list of unmapped identifier strings contains a string for each acl entry
> whose RICHACE_UNMAPPED_WHO flag is set.
>
> Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com>
....
> +/**
> + * richacl_has_unmapped_identifiers
> + *
> + * Check if an acl has unmapped identifiers.
> + */
> +bool richacl_has_unmapped_identifiers(struct richacl *acl)
> +{
> + struct richace *ace;
> +
> + richacl_for_each_entry(ace, acl) {
> + if (ace->e_flags & RICHACE_UNMAPPED_WHO)
> + return true;
> + }
> + return false;
> +}
> +EXPORT_SYMBOL_GPL(richacl_has_unmapped_identifiers);

This was used by the XFS support patch earlier in the series. Bisect
problem here...

Cheers,

Dave.
--
Dave Chinner
david@fromorbit.com