Changeset View
Changeset View
Standalone View
Standalone View
head/sys/cddl/contrib/opensolaris/uts/common/fs/zfs/zfs_acl.c
Show First 20 Lines • Show All 1,140 Lines • ▼ Show 20 Lines | |||||
int | int | ||||
zfs_acl_chown_setattr(znode_t *zp) | zfs_acl_chown_setattr(znode_t *zp) | ||||
{ | { | ||||
int error; | int error; | ||||
zfs_acl_t *aclp; | zfs_acl_t *aclp; | ||||
ASSERT_VOP_ELOCKED(ZTOV(zp), __func__); | ASSERT_VOP_ELOCKED(ZTOV(zp), __func__); | ||||
ASSERT(MUTEX_HELD(&zp->z_acl_lock)); | ASSERT(MUTEX_HELD(&zp->z_acl_lock)); | ||||
ASSERT_VOP_IN_SEQC(ZTOV(zp)); | |||||
if ((error = zfs_acl_node_read(zp, &aclp, B_FALSE)) == 0) | if ((error = zfs_acl_node_read(zp, &aclp, B_FALSE)) == 0) | ||||
zp->z_mode = zfs_mode_compute(zp->z_mode, aclp, | zp->z_mode = zfs_mode_compute(zp->z_mode, aclp, | ||||
&zp->z_pflags, zp->z_uid, zp->z_gid); | &zp->z_pflags, zp->z_uid, zp->z_gid); | ||||
return (error); | return (error); | ||||
} | } | ||||
/* | /* | ||||
Show All 10 Lines | zfs_aclset_common(znode_t *zp, zfs_acl_t *aclp, cred_t *cr, dmu_tx_t *tx) | ||||
zfsvfs_t *zfsvfs = zp->z_zfsvfs; | zfsvfs_t *zfsvfs = zp->z_zfsvfs; | ||||
dmu_object_type_t otype; | dmu_object_type_t otype; | ||||
zfs_acl_locator_cb_t locate = { 0 }; | zfs_acl_locator_cb_t locate = { 0 }; | ||||
uint64_t mode; | uint64_t mode; | ||||
sa_bulk_attr_t bulk[5]; | sa_bulk_attr_t bulk[5]; | ||||
uint64_t ctime[2]; | uint64_t ctime[2]; | ||||
int count = 0; | int count = 0; | ||||
zfs_acl_phys_t acl_phys; | zfs_acl_phys_t acl_phys; | ||||
ASSERT_VOP_IN_SEQC(ZTOV(zp)); | |||||
mode = zp->z_mode; | mode = zp->z_mode; | ||||
mode = zfs_mode_compute(mode, aclp, &zp->z_pflags, | mode = zfs_mode_compute(mode, aclp, &zp->z_pflags, | ||||
zp->z_uid, zp->z_gid); | zp->z_uid, zp->z_gid); | ||||
zp->z_mode = mode; | zp->z_mode = mode; | ||||
SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_MODE(zfsvfs), NULL, | SA_ADD_BULK_ATTR(bulk, count, SA_ZPL_MODE(zfsvfs), NULL, | ||||
▲ Show 20 Lines • Show All 1,593 Lines • Show Last 20 Lines |