Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit edd36a57 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Greg Kroah-Hartman
Browse files

xfs: remove the kuid/kgid conversion wrappers



commit ba8adad5d036733d240fa8a8f4d055f3d4490562 upstream.

Remove the XFS wrappers for converting from and to the kuid/kgid types.
Mostly this means switching to VFS i_{u,g}id_{read,write} helpers, but
in a few spots the calls to the conversion functions is open coded.
To match the use of sb->s_user_ns in the helpers and other file systems,
sb->s_user_ns is also used in the quota code.  The ACL code already does
the conversion in a grotty layering violation in the VFS xattr code,
so it keeps using init_user_ns for the identity mapping.

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Reviewed-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: default avatarChandan Babu R <chandan.babu@oracle.com>
Acked-by: default avatarDarrick J. Wong <djwong@kernel.org>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 3ef81874
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -222,8 +222,8 @@ xfs_inode_from_disk(
	}

	to->di_format = from->di_format;
	inode->i_uid = xfs_uid_to_kuid(be32_to_cpu(from->di_uid));
	inode->i_gid = xfs_gid_to_kgid(be32_to_cpu(from->di_gid));
	i_uid_write(inode, be32_to_cpu(from->di_uid));
	i_gid_write(inode, be32_to_cpu(from->di_gid));
	to->di_flushiter = be16_to_cpu(from->di_flushiter);

	/*
@@ -276,8 +276,8 @@ xfs_inode_to_disk(

	to->di_version = from->di_version;
	to->di_format = from->di_format;
	to->di_uid = cpu_to_be32(xfs_kuid_to_uid(inode->i_uid));
	to->di_gid = cpu_to_be32(xfs_kgid_to_gid(inode->i_gid));
	to->di_uid = cpu_to_be32(i_uid_read(inode));
	to->di_gid = cpu_to_be32(i_gid_read(inode));
	to->di_projid_lo = cpu_to_be16(from->di_projid & 0xffff);
	to->di_projid_hi = cpu_to_be16(from->di_projid >> 16);

+8 −4
Original line number Diff line number Diff line
@@ -66,10 +66,12 @@ xfs_acl_from_disk(

		switch (acl_e->e_tag) {
		case ACL_USER:
			acl_e->e_uid = xfs_uid_to_kuid(be32_to_cpu(ace->ae_id));
			acl_e->e_uid = make_kuid(&init_user_ns,
						 be32_to_cpu(ace->ae_id));
			break;
		case ACL_GROUP:
			acl_e->e_gid = xfs_gid_to_kgid(be32_to_cpu(ace->ae_id));
			acl_e->e_gid = make_kgid(&init_user_ns,
						 be32_to_cpu(ace->ae_id));
			break;
		case ACL_USER_OBJ:
		case ACL_GROUP_OBJ:
@@ -102,10 +104,12 @@ xfs_acl_to_disk(struct xfs_acl *aclp, const struct posix_acl *acl)
		ace->ae_tag = cpu_to_be32(acl_e->e_tag);
		switch (acl_e->e_tag) {
		case ACL_USER:
			ace->ae_id = cpu_to_be32(xfs_kuid_to_uid(acl_e->e_uid));
			ace->ae_id = cpu_to_be32(
					from_kuid(&init_user_ns, acl_e->e_uid));
			break;
		case ACL_GROUP:
			ace->ae_id = cpu_to_be32(xfs_kgid_to_gid(acl_e->e_gid));
			ace->ae_id = cpu_to_be32(
					from_kgid(&init_user_ns, acl_e->e_gid));
			break;
		default:
			ace->ae_id = cpu_to_be32(ACL_UNDEFINED_ID);
+2 −2
Original line number Diff line number Diff line
@@ -859,9 +859,9 @@ xfs_qm_id_for_quotatype(
{
	switch (type) {
	case XFS_DQ_USER:
		return xfs_kuid_to_uid(VFS_I(ip)->i_uid);
		return i_uid_read(VFS_I(ip));
	case XFS_DQ_GROUP:
		return xfs_kgid_to_gid(VFS_I(ip)->i_gid);
		return i_gid_read(VFS_I(ip));
	case XFS_DQ_PROJ:
		return ip->i_d.di_projid;
	}
+2 −2
Original line number Diff line number Diff line
@@ -308,8 +308,8 @@ xfs_inode_to_log_dinode(

	to->di_version = from->di_version;
	to->di_format = from->di_format;
	to->di_uid = xfs_kuid_to_uid(inode->i_uid);
	to->di_gid = xfs_kgid_to_gid(inode->i_gid);
	to->di_uid = i_uid_read(inode);
	to->di_gid = i_gid_read(inode);
	to->di_projid_lo = from->di_projid & 0xffff;
	to->di_projid_hi = from->di_projid >> 16;

+2 −2
Original line number Diff line number Diff line
@@ -86,8 +86,8 @@ xfs_bulkstat_one_int(
	 */
	buf->bs_projectid = ip->i_d.di_projid;
	buf->bs_ino = ino;
	buf->bs_uid = xfs_kuid_to_uid(inode->i_uid);
	buf->bs_gid = xfs_kgid_to_gid(inode->i_gid);
	buf->bs_uid = i_uid_read(inode);
	buf->bs_gid = i_gid_read(inode);
	buf->bs_size = dic->di_size;

	buf->bs_nlink = inode->i_nlink;
Loading