Lines Matching refs:pacl
140 nfs4_acl_posix_to_nfsv4(struct posix_acl *pacl, struct posix_acl *dpacl,
146 if (pacl) {
147 if (posix_acl_valid(pacl) < 0)
149 size += 2*pacl->a_count;
162 if (pacl)
163 _posix_to_nfsv4_one(pacl, acl, flags & ~NFS4_ACL_TYPE_DEFAULT);
220 _posix_to_nfsv4_one(struct posix_acl *pacl, struct nfs4_acl *acl,
230 BUG_ON(pacl->a_count < 3);
231 summarize_posix_acl(pacl, &pas);
233 pa = pacl->a_entries;
350 sort_pacl_range(struct posix_acl *pacl, int start, int end) {
359 if (pacl->a_entries[i].e_id
360 > pacl->a_entries[i+1].e_id) {
362 tmp = pacl->a_entries[i];
363 pacl->a_entries[i] = pacl->a_entries[i+1];
364 pacl->a_entries[i+1] = tmp;
371 sort_pacl(struct posix_acl *pacl)
377 if (pacl->a_count <= 4)
380 while (pacl->a_entries[i].e_tag == ACL_USER)
382 sort_pacl_range(pacl, 1, i-1);
384 BUG_ON(pacl->a_entries[i].e_tag != ACL_GROUP_OBJ);
386 while (pacl->a_entries[j].e_tag == ACL_GROUP)
388 sort_pacl_range(pacl, i, j-1);
496 struct posix_acl *pacl;
506 pacl = posix_acl_alloc(0, GFP_KERNEL);
507 return pacl ? pacl : ERR_PTR(-ENOMEM);
515 pacl = posix_acl_alloc(nace, GFP_KERNEL);
516 if (!pacl)
519 pace = pacl->a_entries;
573 return pacl;
575 posix_acl_release(pacl);
694 int nfs4_acl_nfsv4_to_posix(struct nfs4_acl *acl, struct posix_acl **pacl,
730 *pacl = posix_state_to_acl(&effective_acl_state, flags);
731 if (IS_ERR(*pacl)) {
732 ret = PTR_ERR(*pacl);
739 posix_acl_release(*pacl);
742 sort_pacl(*pacl);