int zpl_xattr_security_init(struct inode *ip, struct inode *dip, const struct qstr *qstr) { int error; size_t len; void *value; char *name; error = zpl_security_inode_init_security(ip, dip, qstr, &name, &value, &len); if (error) { if (error == -EOPNOTSUPP) return (0); return (error); } error = __zpl_xattr_security_set(ip, name, value, len, 0); kfree(name); kfree(value); return (error); }
static int __zpl_xattr_security_init(struct inode *ip, const struct xattr *xattrs, void *fs_info) { const struct xattr *xattr; int error = 0; for (xattr = xattrs; xattr->name != NULL; xattr++) { error = __zpl_xattr_security_set(ip, xattr->name, xattr->value, xattr->value_len, 0); if (error < 0) break; } return (error); }