]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs: remove the kuid/kgid conversion wrappers
authorChristoph Hellwig <hch@lst.de>
Wed, 29 Apr 2020 20:08:34 +0000 (16:08 -0400)
committerEric Sandeen <sandeen@redhat.com>
Wed, 29 Apr 2020 20:08:34 +0000 (16:08 -0400)
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 <hch@lst.de>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Eric Sandeen <sandeen@sandeen.net>
include/xfs_inode.h
libxfs/libxfs_priv.h
libxfs/xfs_inode_buf.c

index 5e889503ebac48a49231e31c0b1697865c84c770..0ee51f63883d51037016b5492df45288ab0d5bb8 100644 (file)
@@ -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 */
index 76a3874b2813ce6dddcb7a40eda071c089e5ea2f..68b6c0f0fcf7d5a87a526a2c47b971af4956eccb 100644 (file)
@@ -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.
index 9d47208e90f3704ccd9cfa07f335b65daaeeb082..64651d4ed408c7d46d9591e1f0e7a4961d836773 100644 (file)
@@ -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);