Lines Matching defs:acl
23 #include "acl.h"
32 struct posix_acl *acl = NULL;
41 acl = posix_acl_from_xattr(&init_user_ns, value, size);
42 if (IS_ERR(acl))
47 acl = NULL;
49 acl = ERR_PTR(-EIO);
53 return acl;
69 /* get the default/access acl values and cache them */
90 struct posix_acl *acl;
92 * 9p Always cache the acl value when
95 acl = get_cached_acl(inode, type);
96 BUG_ON(is_uncached_acl(acl));
97 return acl;
108 * On access = client and acl = on mode get the acl
117 static int v9fs_set_acl(struct p9_fid *fid, int type, struct posix_acl *acl)
123 if (!acl)
127 size = posix_acl_xattr_size(acl->a_count);
131 retval = posix_acl_to_xattr(&init_user_ns, acl, buffer, size);
153 struct posix_acl *acl;
157 acl = v9fs_get_cached_acl(inode, ACL_TYPE_ACCESS);
158 if (acl) {
159 retval = __posix_acl_chmod(&acl, GFP_KERNEL, inode->i_mode);
162 set_cached_acl(inode, ACL_TYPE_ACCESS, acl);
163 retval = v9fs_set_acl(fid, ACL_TYPE_ACCESS, acl);
164 posix_acl_release(acl);
170 struct posix_acl *dacl, struct posix_acl *acl)
173 set_cached_acl(inode, ACL_TYPE_ACCESS, acl);
175 v9fs_set_acl(fid, ACL_TYPE_ACCESS, acl);
180 struct posix_acl *acl)
183 posix_acl_release(acl);
191 struct posix_acl *acl = NULL;
194 acl = v9fs_get_cached_acl(dir, ACL_TYPE_DEFAULT);
195 if (IS_ERR(acl))
196 return PTR_ERR(acl);
197 if (!acl)
200 if (acl) {
202 *dpacl = posix_acl_dup(acl);
203 retval = __posix_acl_create(&acl, GFP_NOFS, &mode);
207 *pacl = acl;
209 posix_acl_release(acl);
220 struct posix_acl *acl;
225 * We allow set/get/list of acl when access=client is not specified
230 acl = v9fs_get_cached_acl(inode, handler->flags);
231 if (IS_ERR(acl))
232 return PTR_ERR(acl);
233 if (acl == NULL)
235 error = posix_acl_to_xattr(&init_user_ns, acl, buffer, size);
236 posix_acl_release(acl);
247 struct posix_acl *acl;
264 /* update the cached acl value */
265 acl = posix_acl_from_xattr(&init_user_ns, value, size);
266 if (IS_ERR(acl))
267 return PTR_ERR(acl);
268 else if (acl) {
269 retval = posix_acl_valid(inode->i_sb->s_user_ns, acl);
274 acl = NULL;
278 if (acl) {
280 struct posix_acl *old_acl = acl;
282 retval = posix_acl_update_mode(inode, &iattr.ia_mode, &acl);
285 if (!acl) {
305 retval = acl ? -EINVAL : 0;
314 set_cached_acl(inode, handler->flags, acl);
316 posix_acl_release(acl);