Lines Matching refs:acl

104 	smb_acl_t *acl;  in smb_acl_alloc()  local
108 acl = kmem_zalloc(size, KM_SLEEP); in smb_acl_alloc()
109 acl->sl_revision = revision; in smb_acl_alloc()
110 acl->sl_bsize = bsize; in smb_acl_alloc()
111 acl->sl_acecnt = acecnt; in smb_acl_alloc()
112 acl->sl_aces = (smb_ace_t *)(acl + 1); in smb_acl_alloc()
114 list_create(&acl->sl_sorted, sizeof (smb_ace_t), in smb_acl_alloc()
116 return (acl); in smb_acl_alloc()
120 smb_acl_free(smb_acl_t *acl) in smb_acl_free() argument
125 if (acl == NULL) in smb_acl_free()
128 for (i = 0; i < acl->sl_acecnt; i++) in smb_acl_free()
129 smb_sid_free(acl->sl_aces[i].se_sid); in smb_acl_free()
131 while ((ace = list_head(&acl->sl_sorted)) != NULL) in smb_acl_free()
132 list_remove(&acl->sl_sorted, ace); in smb_acl_free()
133 list_destroy(&acl->sl_sorted); in smb_acl_free()
135 size = sizeof (smb_acl_t) + (acl->sl_acecnt * sizeof (smb_ace_t)); in smb_acl_free()
136 kmem_free(acl, size); in smb_acl_free()
147 smb_acl_len(smb_acl_t *acl) in smb_acl_len() argument
149 return ((acl) ? acl->sl_bsize : 0); in smb_acl_len()
153 smb_acl_isvalid(smb_acl_t *acl, int which_acl) in smb_acl_isvalid() argument
157 if (acl->sl_bsize < SMB_ACL_HDRSIZE) in smb_acl_isvalid()
160 if (acl->sl_revision != ACL_REVISION) { in smb_acl_isvalid()
167 for (i = 0; i < acl->sl_acecnt; i++) { in smb_acl_isvalid()
168 if (!smb_ace_isvalid(&acl->sl_aces[i], which_acl)) in smb_acl_isvalid()
213 smb_acl_sort(smb_acl_t *acl) in smb_acl_sort() argument
221 ASSERT(acl); in smb_acl_sort()
223 if (acl->sl_acecnt == 0) { in smb_acl_sort()
236 for (i = 0, ace = acl->sl_aces; i < acl->sl_acecnt; ++i, ace++) { in smb_acl_sort()
271 list_insert_tail(&acl->sl_sorted, ace); in smb_acl_sort()
290 smb_acl_t *acl; in smb_acl_from_zfs() local
306 acl = smb_acl_alloc(ACL_REVISION, SMB_ACL_HDRSIZE, zacl->acl_cnt); in smb_acl_from_zfs()
314 smb_acl_free(acl); in smb_acl_from_zfs()
315 acl = NULL; in smb_acl_from_zfs()
319 ace = &acl->sl_aces[numaces]; in smb_acl_from_zfs()
326 acl->sl_bsize += ace->se_hdr.se_bsize; in smb_acl_from_zfs()
330 return (acl); in smb_acl_from_zfs()
347 smb_acl_to_zfs(smb_acl_t *acl, uint32_t flags, int which_acl, acl_t **fs_acl) in smb_acl_to_zfs() argument
361 if (acl && !smb_acl_isvalid(acl, which_acl)) in smb_acl_to_zfs()
364 if ((acl == NULL) || (acl->sl_acecnt == 0)) { in smb_acl_to_zfs()
366 *fs_acl = smb_fsacl_null_empty(acl == NULL); in smb_acl_to_zfs()
372 idm_stat = smb_idmap_batch_create(&sib, acl->sl_acecnt, in smb_acl_to_zfs()
378 zacl = smb_fsacl_alloc(acl->sl_acecnt, flags); in smb_acl_to_zfs()
381 ace = acl->sl_aces; in smb_acl_to_zfs()
384 for (i = 0; i < acl->sl_acecnt; i++, zace++, ace++, sim++) { in smb_acl_to_zfs()
419 ace = acl->sl_aces; in smb_acl_to_zfs()
421 for (i = 0; i < acl->sl_acecnt; i++, zace++, ace++, sim++) { in smb_acl_to_zfs()
558 acl_t *acl; in smb_fsacl_alloc() local
560 acl = acl_alloc(ACE_T); in smb_fsacl_alloc()
561 acl->acl_cnt = acenum; in smb_fsacl_alloc()
562 acl->acl_aclp = kmem_zalloc(acl->acl_entry_size * acenum, KM_SLEEP); in smb_fsacl_alloc()
563 acl->acl_flags = flags; in smb_fsacl_alloc()
564 return (acl); in smb_fsacl_alloc()
568 smb_fsacl_free(acl_t *acl) in smb_fsacl_free() argument
570 if (acl) in smb_fsacl_free()
571 acl_free(acl); in smb_fsacl_free()
585 acl_t *acl; in smb_fsacl_merge() local
591 acl = smb_fsacl_alloc(dacl->acl_cnt + sacl->acl_cnt, dacl->acl_flags); in smb_fsacl_merge()
593 bcopy(dacl->acl_aclp, acl->acl_aclp, dacl_size); in smb_fsacl_merge()
594 bcopy(sacl->acl_aclp, (char *)acl->acl_aclp + dacl_size, in smb_fsacl_merge()
597 return (acl); in smb_fsacl_merge()