Lines Matching defs:aclp

456 	zfs_acl_t *aclp;
458 aclp = kmem_zalloc(sizeof (zfs_acl_t), KM_SLEEP);
459 list_create(&aclp->z_acl, sizeof (zfs_acl_node_t),
461 aclp->z_version = vers;
463 aclp->z_ops = &zfs_acl_fuid_ops;
465 aclp->z_ops = &zfs_acl_v0_ops;
466 return (aclp);
494 zfs_acl_release_nodes(zfs_acl_t *aclp)
498 while ((aclnode = list_remove_head(&aclp->z_acl)))
500 aclp->z_acl_count = 0;
501 aclp->z_acl_bytes = 0;
505 zfs_acl_free(zfs_acl_t *aclp)
507 zfs_acl_release_nodes(aclp);
508 list_destroy(&aclp->z_acl);
509 kmem_free(aclp, sizeof (zfs_acl_t));
535 zfs_ace_valid(vtype_t obj_type, zfs_acl_t *aclp, uint16_t type, uint16_t iflags)
549 if (aclp->z_version < ZFS_ACL_VERSION_FUID)
551 aclp->z_hints |= ZFS_ACL_OBJ_ACE;
560 aclp->z_hints |= ZFS_INHERIT_ACE;
573 zfs_acl_next_ace(zfs_acl_t *aclp, void *start, uint64_t *who,
578 ASSERT3P(aclp, !=, NULL);
581 aclnode = list_head(&aclp->z_acl);
585 aclp->z_next_ace = aclnode->z_acldata;
586 aclp->z_curr_node = aclnode;
590 aclnode = aclp->z_curr_node;
596 aclnode = list_next(&aclp->z_acl, aclnode);
600 aclp->z_curr_node = aclnode;
602 aclp->z_next_ace = aclnode->z_acldata;
607 void *acep = aclp->z_next_ace;
613 ace_size = aclp->z_ops->ace_size(acep);
620 *iflags = aclp->z_ops->ace_flags_get(acep);
621 *type = aclp->z_ops->ace_type_get(acep);
622 *access_mask = aclp->z_ops->ace_mask_get(acep);
623 *who = aclp->z_ops->ace_who_get(acep);
624 aclp->z_next_ace = (caddr_t)aclp->z_next_ace + ace_size;
637 zfs_acl_t *aclp = datap;
641 acep = zfs_acl_next_ace(aclp, acep, &who, mask,
652 zfs_copy_ace_2_fuid(zfsvfs_t *zfsvfs, vtype_t obj_type, zfs_acl_t *aclp,
678 if (zfs_ace_valid(obj_type, aclp, aceptr->z_hdr.z_type,
702 aclp->z_ops->ace_size(aceptr));
714 zfs_copy_fuid_2_ace(zfsvfs_t *zfsvfs, zfs_acl_t *aclp, cred_t *cr,
727 while ((zacep = zfs_acl_next_ace(aclp, zacep,
771 zfs_copy_ace_2_oldace(vtype_t obj_type, zfs_acl_t *aclp, ace_t *acep,
785 if (zfs_ace_valid(obj_type, aclp, aceptr->z_type,
797 zfs_acl_xform(znode_t *zp, zfs_acl_t *aclp, cred_t *cr)
807 ASSERT3U(aclp->z_version, ==, ZFS_ACL_VERSION_INITIAL);
815 oldaclp = kmem_alloc(sizeof (zfs_oldace_t) * aclp->z_acl_count,
818 while ((cookie = zfs_acl_next_ace(aclp, cookie, &who,
826 newaclnode = zfs_acl_node_alloc(aclp->z_acl_count *
828 aclp->z_ops = &zfs_acl_fuid_ops;
829 VERIFY0(zfs_copy_ace_2_fuid(zp->z_zfsvfs, ZTOV(zp)->v_type, aclp,
830 oldaclp, newaclnode->z_acldata, aclp->z_acl_count,
832 newaclnode->z_ace_count = aclp->z_acl_count;
833 aclp->z_version = ZFS_ACL_VERSION;
834 kmem_free(oldaclp, aclp->z_acl_count * sizeof (zfs_oldace_t));
840 zfs_acl_release_nodes(aclp);
842 list_insert_head(&aclp->z_acl, newaclnode);
844 aclp->z_acl_bytes = newaclnode->z_size;
845 aclp->z_acl_count = newaclnode->z_ace_count;
867 zfs_set_ace(zfs_acl_t *aclp, void *acep, uint32_t access_mask,
872 aclp->z_ops->ace_mask_set(acep, access_mask);
873 aclp->z_ops->ace_type_set(acep, access_type);
874 aclp->z_ops->ace_flags_set(acep, entry_type);
877 aclp->z_ops->ace_who_set(acep, fuid);
884 zfs_mode_compute(uint64_t fmode, zfs_acl_t *aclp,
898 while ((acep = zfs_acl_next_ace(aclp, acep, &who,
1056 zfs_acl_t *aclp;
1080 aclp = zfs_acl_alloc(version);
1082 aclp->z_acl_count = acl_count;
1083 aclp->z_acl_bytes = aclsize;
1086 aclnode->z_ace_count = aclp->z_acl_count;
1104 zfs_acl_free(aclp);
1112 list_insert_head(&aclp->z_acl, aclnode);
1114 *aclpp = aclp;
1116 zp->z_acl_cached = aclp;
1143 zfs_acl_t *aclp;
1151 if ((error = zfs_acl_node_read(zp, B_TRUE, &aclp, B_FALSE)) == 0)
1152 zp->z_mode = zfs_mode_compute(zp->z_mode, aclp,
1165 zfs_aclset_common(znode_t *zp, zfs_acl_t *aclp, cred_t *cr, dmu_tx_t *tx)
1183 mode = zfs_mode_compute(mode, aclp, &zp->z_pflags,
1205 if ((aclp->z_version == ZFS_ACL_VERSION_INITIAL) &&
1207 zfs_acl_xform(zp, aclp, cr);
1208 ASSERT3U(aclp->z_version, >=, ZFS_ACL_VERSION_FUID);
1218 locate.cb_aclp = aclp;
1220 zfs_acl_data_locator, &locate, aclp->z_acl_bytes);
1222 NULL, &aclp->z_acl_count, sizeof (uint64_t));
1234 if (aclp->z_acl_bytes > ZFS_ACE_SPACE) {
1241 aclp->z_version != acl_phys.z_acl_version) {
1249 otype, aclp->z_acl_bytes,
1256 aoid, aclp->z_acl_bytes, 0, tx);
1259 for (aclnode = list_head(&aclp->z_acl); aclnode;
1260 aclnode = list_next(&aclp->z_acl, aclnode)) {
1280 for (aclnode = list_head(&aclp->z_acl); aclnode;
1281 aclnode = list_next(&aclp->z_acl, aclnode)) {
1293 if (aclp->z_version == ZFS_ACL_VERSION_INITIAL) {
1294 acl_phys.z_acl_size = aclp->z_acl_count;
1295 acl_phys.z_acl_count = aclp->z_acl_bytes;
1297 acl_phys.z_acl_size = aclp->z_acl_bytes;
1298 acl_phys.z_acl_count = aclp->z_acl_count;
1300 acl_phys.z_acl_version = aclp->z_version;
1311 zp->z_pflags |= aclp->z_hints;
1313 if (ace_trivial_common(aclp, 0, zfs_ace_walk) == 0)
1322 zfs_acl_t *aclp)
1332 size_t abstract_size = aclp->z_ops->ace_abstract_size();
1343 newnode = zfs_acl_node_alloc((abstract_size * 6) + aclp->z_acl_bytes);
1347 zfs_set_ace(aclp, zacep, masks.allow0, ALLOW, -1, ACE_OWNER);
1353 zfs_set_ace(aclp, zacep, masks.deny1, DENY, -1, ACE_OWNER);
1359 zfs_set_ace(aclp, zacep, masks.deny2, DENY, -1, OWNING_GROUP);
1365 while ((acep = zfs_acl_next_ace(aclp, acep, &who, &access_mask,
1397 aclp->z_hints |= ZFS_INHERIT_ACE;
1406 aclp->z_hints |= ZFS_ACL_OBJ_ACE;
1419 zfs_set_ace(aclp, zacep, access_mask, type, who, iflags);
1420 ace_size = aclp->z_ops->ace_size(acep);
1425 zfs_set_ace(aclp, zacep, masks.owner, ALLOW, -1, ACE_OWNER);
1427 zfs_set_ace(aclp, zacep, masks.group, ALLOW, -1, OWNING_GROUP);
1429 zfs_set_ace(aclp, zacep, masks.everyone, ALLOW, -1, ACE_EVERYONE);
1433 zfs_acl_release_nodes(aclp);
1434 aclp->z_acl_count = new_count;
1435 aclp->z_acl_bytes = new_bytes;
1438 list_insert_tail(&aclp->z_acl, newnode);
1442 zfs_acl_chmod_setattr(znode_t *zp, zfs_acl_t **aclp, uint64_t mode)
1450 *aclp = zfs_acl_alloc(zfs_acl_version_zp(zp));
1452 error = zfs_acl_node_read(zp, B_TRUE, aclp, B_TRUE);
1455 (*aclp)->z_hints = zp->z_pflags & V4_ACL_WIDE_FLAGS;
1457 (zp->z_zfsvfs->z_acl_mode == ZFS_ACL_GROUPMASK), *aclp);
1490 zfs_acl_t *aclp = NULL;
1503 aclp = zfs_acl_alloc(paclp->z_version);
1506 return (aclp);
1552 ace_size = aclp->z_ops->ace_size(pacep);
1554 list_insert_tail(&aclp->z_acl, aclnode);
1557 zfs_set_ace(aclp, acep, access_mask, type,
1564 data2sz = aclp->z_ops->ace_data(acep, &data2);
1569 aclp->z_acl_count++;
1571 aclp->z_acl_bytes += aclnode->z_size;
1572 newflags = aclp->z_ops->ace_flags_get(acep);
1580 aclp->z_ops->ace_flags_set(acep,
1588 aclp->z_hints |= ZFS_INHERIT_ACE;
1597 aclp->z_ops->ace_flags_set(acep,
1601 aclp->z_ops->ace_flags_set(acep,
1606 aclp->z_acl_count != 0) {
1610 return (aclp);
1778 zfs_acl_t *aclp;
1797 error = zfs_acl_node_read(zp, B_TRUE, &aclp, B_FALSE);
1812 while ((zacep = zfs_acl_next_ace(aclp, zacep,
1827 count = (int)aclp->z_acl_count;
1842 if (aclp->z_version == ZFS_ACL_VERSION_FUID)
1843 zfs_copy_fuid_2_ace(zp->z_zfsvfs, aclp, cr,
1849 for (aclnode = list_head(&aclp->z_acl); aclnode;
1850 aclnode = list_next(&aclp->z_acl, aclnode)) {
1856 ==, aclp->z_acl_bytes);
1878 zfs_acl_t *aclp;
1886 aclp = zfs_acl_alloc(zfs_acl_version(zfsvfs->z_version));
1888 aclp->z_hints = 0;
1890 if (aclp->z_version == ZFS_ACL_VERSION_INITIAL) {
1891 if ((error = zfs_copy_ace_2_oldace(obj_type, aclp,
1894 zfs_acl_free(aclp);
1899 if ((error = zfs_copy_ace_2_fuid(zfsvfs, obj_type, aclp,
1902 zfs_acl_free(aclp);
1907 aclp->z_acl_bytes = aclnode->z_size;
1909 aclp->z_acl_count = aclcnt;
1910 list_insert_head(&aclp->z_acl, aclnode);
1917 aclp->z_hints |= ZFS_ACL_PROTECTED;
1919 aclp->z_hints |= ZFS_ACL_DEFAULTED;
1921 aclp->z_hints |= ZFS_ACL_AUTO_INHERIT;
1924 *zaclp = aclp;
1940 zfs_acl_t *aclp;
1957 &aclp);
1966 aclp->z_hints |=
1991 aclp->z_acl_bytes);
1993 dmu_tx_hold_write(tx, acl_obj, 0, aclp->z_acl_bytes);
1995 } else if (!zp->z_is_sa && aclp->z_acl_bytes > ZFS_ACE_SPACE) {
1996 dmu_tx_hold_write(tx, DMU_NEW_OBJECT, 0, aclp->z_acl_bytes);
2010 zfs_acl_free(aclp);
2014 error = zfs_aclset_common(zp, aclp, cr, tx);
2017 zp->z_acl_cached = aclp;
2103 zfs_acl_t *aclp;
2122 error = zfs_acl_node_read(zp, B_TRUE, &aclp, B_FALSE);
2130 while ((acep = zfs_acl_next_ace(aclp, acep, &who, &access_mask,