From 2c6abf15ff5bcc979653eef0131f90d4f0fede21 Mon Sep 17 00:00:00 2001 From: Nikolay Borisov Date: Sun, 22 May 2016 14:15:57 +0300 Subject: 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 Signed-off-by: Brian Behlendorf Issue #4685 Issue #227 --- module/zfs/zfs_vfsops.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) (limited to 'module/zfs/zfs_vfsops.c') diff --git a/module/zfs/zfs_vfsops.c b/module/zfs/zfs_vfsops.c index 8486510912b6..d8b27461aacc 100644 --- a/module/zfs/zfs_vfsops.c +++ b/module/zfs/zfs_vfsops.c @@ -627,10 +627,11 @@ zfs_owner_overquota(zfs_sb_t *zsb, znode_t *zp, boolean_t isgroup) { uint64_t fuid; uint64_t quotaobj; + struct inode *ip = ZTOI(zp); quotaobj = isgroup ? zsb->z_groupquota_obj : zsb->z_userquota_obj; - fuid = isgroup ? zp->z_gid : zp->z_uid; + fuid = isgroup ? KGID_TO_SGID(ip->i_gid) : KUID_TO_SUID(ip->i_uid); if (quotaobj == 0 || zsb->z_replay) return (B_FALSE); -- cgit v1.2.3