Lines Matching refs:acl

119 	smb_acl_t *acl;  in smb_acl_alloc()  local
123 acl = kmem_zalloc(size, KM_SLEEP); in smb_acl_alloc()
124 acl->sl_revision = revision; in smb_acl_alloc()
125 acl->sl_bsize = bsize; in smb_acl_alloc()
126 acl->sl_acecnt = acecnt; in smb_acl_alloc()
127 acl->sl_aces = (smb_ace_t *)(acl + 1); in smb_acl_alloc()
129 list_create(&acl->sl_sorted, sizeof (smb_ace_t), in smb_acl_alloc()
131 return (acl); in smb_acl_alloc()
135 smb_acl_free(smb_acl_t *acl) in smb_acl_free() argument
140 if (acl == NULL) in smb_acl_free()
143 for (i = 0; i < acl->sl_acecnt; i++) in smb_acl_free()
144 smb_sid_free(acl->sl_aces[i].se_sid); in smb_acl_free()
146 while ((ace = list_head(&acl->sl_sorted)) != NULL) in smb_acl_free()
147 list_remove(&acl->sl_sorted, ace); in smb_acl_free()
148 list_destroy(&acl->sl_sorted); in smb_acl_free()
150 size = sizeof (smb_acl_t) + (acl->sl_acecnt * sizeof (smb_ace_t)); in smb_acl_free()
151 kmem_free(acl, size); in smb_acl_free()
162 smb_acl_len(smb_acl_t *acl) in smb_acl_len() argument
164 return ((acl) ? acl->sl_bsize : 0); in smb_acl_len()
168 smb_acl_isvalid(smb_acl_t *acl, int which_acl) in smb_acl_isvalid() argument
172 if (acl->sl_bsize < SMB_ACL_HDRSIZE) in smb_acl_isvalid()
175 if (acl->sl_revision != ACL_REVISION) { in smb_acl_isvalid()
182 for (i = 0; i < acl->sl_acecnt; i++) { in smb_acl_isvalid()
183 if (!smb_ace_isvalid(&acl->sl_aces[i], which_acl)) in smb_acl_isvalid()
228 smb_acl_sort(smb_acl_t *acl) in smb_acl_sort() argument
236 ASSERT(acl); in smb_acl_sort()
238 if (acl->sl_acecnt == 0) { in smb_acl_sort()
251 for (i = 0, ace = acl->sl_aces; i < acl->sl_acecnt; ++i, ace++) { in smb_acl_sort()
286 list_insert_tail(&acl->sl_sorted, ace); in smb_acl_sort()
335 smb_acl_t *acl; in smb_acl_from_zfs() local
356 acl = smb_acl_alloc(ACL_REVISION, SMB_ACL_HDRSIZE, zacl->acl_cnt); in smb_acl_from_zfs()
364 smb_acl_free(acl); in smb_acl_from_zfs()
365 acl = NULL; in smb_acl_from_zfs()
369 ace = &acl->sl_aces[numaces]; in smb_acl_from_zfs()
376 acl->sl_bsize += ace->se_hdr.se_bsize; in smb_acl_from_zfs()
380 return (acl); in smb_acl_from_zfs()
397 smb_acl_to_zfs(smb_acl_t *acl, uint32_t flags, int which_acl, acl_t **fs_acl) in smb_acl_to_zfs() argument
411 if (acl && !smb_acl_isvalid(acl, which_acl)) in smb_acl_to_zfs()
414 if ((acl == NULL) || (acl->sl_acecnt == 0)) { in smb_acl_to_zfs()
416 *fs_acl = smb_fsacl_null_empty(acl == NULL); in smb_acl_to_zfs()
422 idm_stat = smb_idmap_batch_create(&sib, acl->sl_acecnt, in smb_acl_to_zfs()
428 zacl = smb_fsacl_alloc(acl->sl_acecnt, flags); in smb_acl_to_zfs()
431 ace = acl->sl_aces; in smb_acl_to_zfs()
434 for (i = 0; i < acl->sl_acecnt; i++, zace++, ace++, sim++) { in smb_acl_to_zfs()
469 ace = acl->sl_aces; in smb_acl_to_zfs()
471 for (i = 0; i < acl->sl_acecnt; i++, zace++, ace++, sim++) { in smb_acl_to_zfs()
614 acl_t *acl; in smb_fsacl_alloc() local
616 acl = acl_alloc(ACE_T); in smb_fsacl_alloc()
617 acl->acl_cnt = acenum; in smb_fsacl_alloc()
618 acl->acl_aclp = kmem_zalloc(acl->acl_entry_size * acenum, KM_SLEEP); in smb_fsacl_alloc()
619 acl->acl_flags = flags; in smb_fsacl_alloc()
620 return (acl); in smb_fsacl_alloc()
624 smb_fsacl_free(acl_t *acl) in smb_fsacl_free() argument
626 if (acl) in smb_fsacl_free()
627 acl_free(acl); in smb_fsacl_free()
641 acl_t *acl; in smb_fsacl_merge() local
647 acl = smb_fsacl_alloc(dacl->acl_cnt + sacl->acl_cnt, dacl->acl_flags); in smb_fsacl_merge()
649 bcopy(dacl->acl_aclp, acl->acl_aclp, dacl_size); in smb_fsacl_merge()
650 bcopy(sacl->acl_aclp, (char *)acl->acl_aclp + dacl_size, in smb_fsacl_merge()
653 return (acl); in smb_fsacl_merge()