Lines Matching refs:acl
3 * linux/fs/ext4/acl.c
12 #include "acl.h"
22 struct posix_acl *acl;
37 acl = posix_acl_alloc(count, GFP_NOFS);
38 if (!acl)
45 acl->a_entries[n].e_tag = le16_to_cpu(entry->e_tag);
46 acl->a_entries[n].e_perm = le16_to_cpu(entry->e_perm);
48 switch (acl->a_entries[n].e_tag) {
61 acl->a_entries[n].e_uid =
69 acl->a_entries[n].e_gid =
80 return acl;
83 posix_acl_release(acl);
91 ext4_acl_to_disk(const struct posix_acl *acl, size_t *size)
97 *size = ext4_acl_size(acl->a_count);
98 ext_acl = kmalloc(sizeof(ext4_acl_header) + acl->a_count *
104 for (n = 0; n < acl->a_count; n++) {
105 const struct posix_acl_entry *acl_e = &acl->a_entries[n];
149 struct posix_acl *acl;
173 acl = ext4_acl_from_disk(value, retval);
175 acl = NULL;
177 acl = ERR_PTR(retval);
180 return acl;
190 struct posix_acl *acl, int xattr_flags)
205 return acl ? -EACCES : 0;
211 if (acl) {
212 value = ext4_acl_to_disk(acl, &size);
222 set_cached_acl(inode, type, acl);
229 struct posix_acl *acl, int type)
233 size_t acl_size = acl ? ext4_acl_size(acl->a_count) : 0;
251 if ((type == ACL_TYPE_ACCESS) && acl) {
252 error = posix_acl_update_mode(idmap, inode, &mode, &acl);
259 error = __ext4_set_acl(handle, inode, type, acl, 0 /* xattr_flags */);
281 struct posix_acl *default_acl, *acl;
284 error = posix_acl_create(dir, &inode->i_mode, &default_acl, &acl);
295 if (acl) {
298 acl, XATTR_CREATE);
299 posix_acl_release(acl);