From: Christoph Hellwig Date: Wed, 29 Apr 2020 20:08:34 +0000 (-0400) Subject: xfs: remove the kuid/kgid conversion wrappers X-Git-Tag: v5.7.0-rc0~56 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=100eb9e938ae433edc70152c430871792b163cd2;p=thirdparty%2Fxfsprogs-dev.git xfs: remove the kuid/kgid conversion wrappers Source kernel commit: ba8adad5d036733d240fa8a8f4d055f3d4490562 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: Christoph Hellwig Reviewed-by: Darrick J. Wong Signed-off-by: Darrick J. Wong Signed-off-by: Eric Sandeen --- diff --git a/include/xfs_inode.h b/include/xfs_inode.h index 5e889503e..0ee51f638 100644 --- a/include/xfs_inode.h +++ b/include/xfs_inode.h @@ -45,6 +45,23 @@ struct inode { struct timespec i_ctime; }; +static inline uint32_t i_uid_read(struct inode *inode) +{ + return inode->i_uid; +} +static inline uint32_t i_gid_read(struct inode *inode) +{ + return inode->i_gid; +} +static inline void i_uid_write(struct inode *inode, uint32_t uid) +{ + inode->i_uid = uid; +} +static inline void i_gid_write(struct inode *inode, uint32_t gid) +{ + inode->i_gid = gid; +} + typedef struct xfs_inode { struct cache_node i_node; struct xfs_mount *i_mount; /* fs mount struct ptr */ diff --git a/libxfs/libxfs_priv.h b/libxfs/libxfs_priv.h index 76a3874b2..68b6c0f0f 100644 --- a/libxfs/libxfs_priv.h +++ b/libxfs/libxfs_priv.h @@ -458,11 +458,6 @@ static inline struct xfs_buf *xfs_buf_incore(struct xfs_buftarg *target, #define xfs_icreate_log(tp, agno, agbno, cnt, isize, len, gen) ((void) 0) #define xfs_sb_validate_fsb_count(sbp, nblks) (0) -#define xfs_uid_to_kuid(uid) (uid) -#define xfs_gid_to_kgid(gid) (gid) -#define xfs_kuid_to_uid(kuid) (kuid) -#define xfs_kgid_to_gid(kgid) (kgid) - /* * Prototypes for kernel static functions that are aren't in their * associated header files. diff --git a/libxfs/xfs_inode_buf.c b/libxfs/xfs_inode_buf.c index 9d47208e9..64651d4ed 100644 --- a/libxfs/xfs_inode_buf.c +++ b/libxfs/xfs_inode_buf.c @@ -219,8 +219,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); /* @@ -273,8 +273,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);