Re: [PATCH v18 21/22] ext4: Add richacl support
From: Christoph Hellwig
Date: Tue Mar 15 2016 - 03:18:09 EST
On Mon, Mar 14, 2016 at 12:08:31AM +0100, Andreas Gruenbacher wrote:
> The xattr representation is the same on disk and at the xattr syscall
> layer, and so richacl_from_xattr is used for converting into the
> in-memory representation in both cases. The error codes are not the
> same when a user supplies an invalid value via setxattr or NFS and
> when an invalid xattr is read from disk though. I'll add a parameter
> to richacl_from_xattr to make this more explicit.
Better add a wrapper instead of a parameter.
>
> >> +static int
> >> +__ext4_set_richacl(handle_t *handle, struct inode *inode, struct richacl *acl)
> >> +{
> >> + const int name_index = EXT4_XATTR_INDEX_RICHACL;
> >> + umode_t mode = inode->i_mode;
> >> + int retval, size;
> >> + void *value;
> >> +
> >> + if (richacl_equiv_mode(acl, &mode) == 0) {
> >> + inode->i_ctime = ext4_current_time(inode);
> >> + inode->i_mode = mode;
> >> + ext4_mark_inode_dirty(handle, inode);
> >> + return __ext4_remove_richacl(handle, inode);
> >> + }
> >
> > Should this check for a NULL acl instead of special casing that
> > in ext4_set_richacl?
>
> I'm not sure I understand what you mean. When the
ext4_set_richacl checks for a NULL acl pointer and then calls into
__ext4_remove_richacl. I'd rather have that special casing in one
place.