Lines Matching refs:acl
16 struct posix_acl *acl);
20 reiserfs_set_acl(struct inode *inode, struct posix_acl *acl, int type) in reiserfs_set_acl() argument
25 int size = acl ? posix_acl_xattr_size(acl->a_count) : 0; in reiserfs_set_acl()
40 error = __reiserfs_set_acl(&th, inode, type, acl); in reiserfs_set_acl()
58 struct posix_acl *acl; in reiserfs_posix_acl_from_disk() local
73 acl = posix_acl_alloc(count, GFP_NOFS); in reiserfs_posix_acl_from_disk()
74 if (!acl) in reiserfs_posix_acl_from_disk()
80 acl->a_entries[n].e_tag = le16_to_cpu(entry->e_tag); in reiserfs_posix_acl_from_disk()
81 acl->a_entries[n].e_perm = le16_to_cpu(entry->e_perm); in reiserfs_posix_acl_from_disk()
82 switch (acl->a_entries[n].e_tag) { in reiserfs_posix_acl_from_disk()
95 acl->a_entries[n].e_uid = in reiserfs_posix_acl_from_disk()
103 acl->a_entries[n].e_gid = in reiserfs_posix_acl_from_disk()
114 return acl; in reiserfs_posix_acl_from_disk()
117 posix_acl_release(acl); in reiserfs_posix_acl_from_disk()
124 static void *reiserfs_posix_acl_to_disk(const struct posix_acl *acl, size_t * size) in reiserfs_posix_acl_to_disk() argument
130 *size = reiserfs_acl_size(acl->a_count); in reiserfs_posix_acl_to_disk()
132 acl->a_count * in reiserfs_posix_acl_to_disk()
139 for (n = 0; n < acl->a_count; n++) { in reiserfs_posix_acl_to_disk()
140 const struct posix_acl_entry *acl_e = &acl->a_entries[n]; in reiserfs_posix_acl_to_disk()
142 entry->e_tag = cpu_to_le16(acl->a_entries[n].e_tag); in reiserfs_posix_acl_to_disk()
143 entry->e_perm = cpu_to_le16(acl->a_entries[n].e_perm); in reiserfs_posix_acl_to_disk()
144 switch (acl->a_entries[n].e_tag) { in reiserfs_posix_acl_to_disk()
183 struct posix_acl *acl; in reiserfs_get_acl() local
217 acl = NULL; in reiserfs_get_acl()
219 acl = ERR_PTR(retval); in reiserfs_get_acl()
221 acl = reiserfs_posix_acl_from_disk(value, retval); in reiserfs_get_acl()
223 if (!IS_ERR(acl)) in reiserfs_get_acl()
224 set_cached_acl(inode, type, acl); in reiserfs_get_acl()
227 return acl; in reiserfs_get_acl()
238 int type, struct posix_acl *acl) in __reiserfs_set_acl() argument
248 if (acl) { in __reiserfs_set_acl()
249 error = posix_acl_equiv_mode(acl, &inode->i_mode); in __reiserfs_set_acl()
254 acl = NULL; in __reiserfs_set_acl()
261 return acl ? -EACCES : 0; in __reiserfs_set_acl()
267 if (acl) { in __reiserfs_set_acl()
268 value = reiserfs_posix_acl_to_disk(acl, &size); in __reiserfs_set_acl()
292 set_cached_acl(inode, type, acl); in __reiserfs_set_acl()
306 struct posix_acl *default_acl, *acl; in reiserfs_inherit_default_acl() local
330 err = posix_acl_create(dir, &inode->i_mode, &default_acl, &acl); in reiserfs_inherit_default_acl()
339 if (acl) { in reiserfs_inherit_default_acl()
342 acl); in reiserfs_inherit_default_acl()
343 posix_acl_release(acl); in reiserfs_inherit_default_acl()
367 struct posix_acl *acl; in reiserfs_cache_default_acl() local
373 acl = reiserfs_get_acl(inode, ACL_TYPE_DEFAULT); in reiserfs_cache_default_acl()
375 if (acl && !IS_ERR(acl)) { in reiserfs_cache_default_acl()
376 int size = reiserfs_acl_size(acl->a_count); in reiserfs_cache_default_acl()
389 posix_acl_release(acl); in reiserfs_cache_default_acl()