diff options
author | Nikolay Borisov <[email protected]> | 2016-05-22 14:15:57 +0300 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2016-07-25 13:21:49 -0700 |
commit | 2c6abf15ff5bcc979653eef0131f90d4f0fede21 (patch) | |
tree | 29bc74006a16d50335196ccd1e7459b569e48b57 /module/zfs/zfs_log.c | |
parent | 82a1b2d6289f9ceae0bee6f1e71d3bc29a8c5d16 (diff) |
Remove znode's z_uid/z_gid member
Remove duplicate z_uid/z_gid member which are also held in the
generic vfs inode struct. This is done by first removing the members
from struct znode and then using the KUID_TO_SUID/KGID_TO_SGID
macros to access the respective member from struct inode. In cases
where the uid/gids are being marshalled from/to disk, use the newly
introduced zfs_(uid|gid)_(read|write) functions to properly
save the uids rather than the internal kernel representation.
Signed-off-by: Nikolay Borisov <[email protected]>
Signed-off-by: Brian Behlendorf <[email protected]>
Issue #4685
Issue #227
Diffstat (limited to 'module/zfs/zfs_log.c')
-rw-r--r-- | module/zfs/zfs_log.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/module/zfs/zfs_log.c b/module/zfs/zfs_log.c index 4d89cb04b..69efb3c16 100644 --- a/module/zfs/zfs_log.c +++ b/module/zfs/zfs_log.c @@ -282,13 +282,13 @@ zfs_log_create(zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype, /* Store dnode slot count in 8 bits above object id. */ LR_FOID_SET_SLOTS(lr->lr_foid, zp->z_dnodesize >> DNODE_SHIFT); lr->lr_mode = zp->z_mode; - if (!IS_EPHEMERAL(zp->z_uid)) { - lr->lr_uid = (uint64_t)zp->z_uid; + if (!IS_EPHEMERAL(KUID_TO_SUID(ZTOI(zp)->i_uid))) { + lr->lr_uid = (uint64_t)KUID_TO_SUID(ZTOI(zp)->i_uid); } else { lr->lr_uid = fuidp->z_fuid_owner; } - if (!IS_EPHEMERAL(zp->z_gid)) { - lr->lr_gid = (uint64_t)zp->z_gid; + if (!IS_EPHEMERAL(KGID_TO_SGID(ZTOI(zp)->i_gid))) { + lr->lr_gid = (uint64_t)KGID_TO_SGID(ZTOI(zp)->i_gid); } else { lr->lr_gid = fuidp->z_fuid_group; } @@ -407,8 +407,8 @@ zfs_log_symlink(zilog_t *zilog, dmu_tx_t *tx, uint64_t txtype, lr = (lr_create_t *)&itx->itx_lr; lr->lr_doid = dzp->z_id; lr->lr_foid = zp->z_id; - lr->lr_uid = zp->z_uid; - lr->lr_gid = zp->z_gid; + lr->lr_uid = KUID_TO_SUID(ZTOI(zp)->i_uid); + lr->lr_gid = KGID_TO_SGID(ZTOI(zp)->i_gid); lr->lr_mode = zp->z_mode; (void) sa_lookup(zp->z_sa_hdl, SA_ZPL_GEN(ZTOZSB(zp)), &lr->lr_gen, sizeof (uint64_t)); |