Lines Matching defs:acl

29 #include <sys/acl.h>
30 #include <acl/acl_common.h>
110 smb_acl_t *acl;
114 acl = kmem_zalloc(size, KM_SLEEP);
115 acl->sl_revision = revision;
116 acl->sl_bsize = bsize;
117 acl->sl_acecnt = acecnt;
118 acl->sl_aces = (smb_ace_t *)(acl + 1);
120 list_create(&acl->sl_sorted, sizeof (smb_ace_t),
122 return (acl);
126 smb_acl_free(smb_acl_t *acl)
131 if (acl == NULL)
134 for (i = 0; i < acl->sl_acecnt; i++)
135 smb_sid_free(acl->sl_aces[i].se_sid);
137 while ((ace = list_head(&acl->sl_sorted)) != NULL)
138 list_remove(&acl->sl_sorted, ace);
139 list_destroy(&acl->sl_sorted);
141 size = sizeof (smb_acl_t) + (acl->sl_acecnt * sizeof (smb_ace_t));
142 kmem_free(acl, size);
153 smb_acl_len(smb_acl_t *acl)
155 return ((acl) ? acl->sl_bsize : 0);
159 smb_acl_isvalid(smb_acl_t *acl, int which_acl)
163 if (acl->sl_bsize < SMB_ACL_HDRSIZE)
166 if (acl->sl_revision != ACL_REVISION) {
173 for (i = 0; i < acl->sl_acecnt; i++) {
174 if (!smb_ace_isvalid(&acl->sl_aces[i], which_acl))
219 smb_acl_sort(smb_acl_t *acl)
227 ASSERT(acl);
229 if (acl->sl_acecnt == 0) {
242 for (i = 0, ace = acl->sl_aces; i < acl->sl_acecnt; ++i, ace++) {
277 list_insert_tail(&acl->sl_sorted, ace);
296 smb_acl_t *acl;
312 acl = smb_acl_alloc(ACL_REVISION, SMB_ACL_HDRSIZE, zacl->acl_cnt);
320 smb_acl_free(acl);
321 acl = NULL;
325 ace = &acl->sl_aces[numaces];
332 acl->sl_bsize += ace->se_hdr.se_bsize;
336 return (acl);
353 smb_acl_to_zfs(smb_acl_t *acl, uint32_t flags, int which_acl, acl_t **fs_acl)
367 if (acl && !smb_acl_isvalid(acl, which_acl))
370 if ((acl == NULL) || (acl->sl_acecnt == 0)) {
372 *fs_acl = smb_fsacl_null_empty(acl == NULL);
378 idm_stat = smb_idmap_batch_create(&sib, acl->sl_acecnt,
384 zacl = smb_fsacl_alloc(acl->sl_acecnt, flags);
387 ace = acl->sl_aces;
390 for (i = 0; i < acl->sl_acecnt; i++, zace++, ace++, sim++) {
425 ace = acl->sl_aces;
427 for (i = 0; i < acl->sl_acecnt; i++, zace++, ace++, sim++) {
564 acl_t *acl;
566 acl = acl_alloc(ACE_T);
567 acl->acl_cnt = acenum;
568 acl->acl_aclp = kmem_zalloc(acl->acl_entry_size * acenum, KM_SLEEP);
569 acl->acl_flags = flags;
570 return (acl);
574 smb_fsacl_free(acl_t *acl)
576 if (acl)
577 acl_free(acl);
591 acl_t *acl;
597 acl = smb_fsacl_alloc(dacl->acl_cnt + sacl->acl_cnt, dacl->acl_flags);
599 bcopy(dacl->acl_aclp, acl->acl_aclp, dacl_size);
600 bcopy(sacl->acl_aclp, (char *)acl->acl_aclp + dacl_size,
603 return (acl);
853 int aclbsize = 0; /* size of acl list in bytes */
854 int dfaclbsize = 0; /* size of default acl list in bytes */
958 /* Sort the acl list */
962 /* Break into acl and default acl lists */