On Wed, Feb 03, 2021 at 01:40:55PM +0100, Miklos Szeredi wrote: > + * Verifying attributes involves retrieving current attributes with > + * i_op->miscattr_get(), this also allows initilaizing attributes that have initilaizing => initializing > +int vfs_miscattr_set(struct dentry *dentry, struct miscattr *ma) > +{ > + struct inode *inode = d_inode(dentry); > + struct miscattr old_ma = {}; > + int err; > + > + if (d_is_special(dentry)) > + return -ENOTTY; > + > + if (!inode->i_op->miscattr_set) > + return -ENOIOCTLCMD; > + > + if (!inode_owner_or_capable(inode)) > + return -EPERM; Shouldn't this be EACCES, not EPERM? > +/** > + * miscattr_has_xattr - check for extentended flags/attributes extentended => extended - Eric