Re: [PATCH 1/1 V2] mqueue: Implment generic xattr support

From: Paul Moore
Date: Wed Nov 09 2016 - 17:29:08 EST


On Wed, Nov 9, 2016 at 11:48 AM, Christoph Hellwig <hch@xxxxxxxxxxxxx> wrote:
>> +/*
>> + * Callback for security_inode_init_security() for acquiring xattrs.
>> + */
>> +static int mqueue_initxattrs(struct inode *inode,
>> + const struct xattr *xattr_array,
>> + void *fs_info)
>> +{
>> + struct mqueue_inode_info *info = MQUEUE_I(inode);
>> + const struct xattr *xattr;
>> + struct simple_xattr *new_xattr;
>> + size_t len;
>> +
>> + for (xattr = xattr_array; xattr->name != NULL; xattr++) {
>> + new_xattr = simple_xattr_alloc(xattr->value, xattr->value_len);
>> + if (!new_xattr)
>> + return -ENOMEM;
>> + len = strlen(xattr->name) + 1;
>> + new_xattr->name = kmalloc(XATTR_SECURITY_PREFIX_LEN + len,
>> + GFP_KERNEL);
>> + if (!new_xattr->name) {
>> + kfree(new_xattr);
>> + return -ENOMEM;
>> + }
>> +
>> + memcpy(new_xattr->name, XATTR_SECURITY_PREFIX,
>> + XATTR_SECURITY_PREFIX_LEN);
>> + memcpy(new_xattr->name + XATTR_SECURITY_PREFIX_LEN,
>> + xattr->name, len);
>> +
>> + simple_xattr_list_add(&info->xattrs, new_xattr);
>> + }
>> +
>> + return 0;
>> +}
>
> This is a 1:1 copy of the shmem code, we rally should consolidate it
> into a single place first, as people will want it for whatever virtual
> fs they care about sooner or later.

I don't disagree, but let's keep that patch separate from the mqueue
enablement to make any future bisects cleaner.

--
paul moore
www.paul-moore.com