]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
repair: add a enum for the XR_INO_* values
authorChristoph Hellwig <hch@lst.de>
Wed, 10 Dec 2025 05:54:38 +0000 (06:54 +0100)
committerAndrey Albershteyn <aalbersh@kernel.org>
Fri, 12 Dec 2025 13:49:20 +0000 (14:49 +0100)
Move the XR_INO_ definitions into dinode.c as they aren't used anywhere
else, and turn them into an enum to improve type safety.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Carlos Maiolino <cmaiolino@redhat.com>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
repair/dinode.c
repair/incore.h

index 8ca0aa0238c7c8c2bc1fc974ede10eea7f4a24ac..b824dfc0a59fd5ad3862bfa0bdac9c36ad5012c3 100644 (file)
 #include "bmap_repair.h"
 #include "rt.h"
 
+/* inode types */
+enum xr_ino_type {
+       XR_INO_UNKNOWN,         /* unknown */
+       XR_INO_DIR,             /* directory */
+       XR_INO_RTDATA,          /* realtime file */
+       XR_INO_RTBITMAP,        /* realtime bitmap inode */
+       XR_INO_RTSUM,           /* realtime summary inode */
+       XR_INO_DATA,            /* regular file */
+       XR_INO_SYMLINK,         /* symlink */
+       XR_INO_CHRDEV,          /* character device */
+       XR_INO_BLKDEV,          /* block device */
+       XR_INO_SOCK,            /* socket */
+       XR_INO_FIFO,            /* fifo */
+       XR_INO_UQUOTA,          /* user quota inode */
+       XR_INO_GQUOTA,          /* group quota inode */
+       XR_INO_PQUOTA,          /* project quota inode */
+       XR_INO_RTRMAP,          /* realtime rmap */
+       XR_INO_RTREFC,          /* realtime refcount */
+};
+
 /*
  * gettext lookups for translations of strings use mutexes internally to
  * the library. Hence when we come through here doing parallel scans in
@@ -482,7 +502,7 @@ out_unlock:
 static inline bool
 is_reflink_type(
        struct xfs_mount        *mp,
-       int                     type)
+       enum xr_ino_type        type)
 {
        if (type == XR_INO_DATA && xfs_has_reflink(mp))
                return true;
@@ -503,7 +523,7 @@ process_bmbt_reclist_int(
        xfs_mount_t             *mp,
        xfs_bmbt_rec_t          *rp,
        xfs_extnum_t            *numrecs,
-       int                     type,
+       enum xr_ino_type        type,
        xfs_ino_t               ino,
        xfs_rfsblock_t          *tot,
        blkmap_t                **blkmapp,
@@ -952,7 +972,7 @@ process_rtrmap(
        xfs_agnumber_t          agno,
        xfs_agino_t             ino,
        struct xfs_dinode       *dip,
-       int                     type,
+       enum xr_ino_type        type,
        int                     *dirty,
        xfs_rfsblock_t          *tot,
        uint64_t                *nex,
@@ -1123,7 +1143,7 @@ process_rtrefc(
        xfs_agnumber_t                  agno,
        xfs_agino_t                     ino,
        struct xfs_dinode               *dip,
-       int                             type,
+       enum xr_ino_type                type,
        int                             *dirty,
        xfs_rfsblock_t                  *tot,
        uint64_t                        *nex,
@@ -1279,7 +1299,7 @@ process_btinode(
        xfs_agnumber_t          agno,
        xfs_agino_t             ino,
        struct xfs_dinode       *dip,
-       int                     type,
+       enum xr_ino_type        type,
        int                     *dirty,
        xfs_rfsblock_t          *tot,
        xfs_extnum_t            *nex,
@@ -1455,7 +1475,7 @@ process_exinode(
        xfs_agnumber_t          agno,
        xfs_agino_t             ino,
        struct xfs_dinode       *dip,
-       int                     type,
+       enum xr_ino_type        type,
        int                     *dirty,
        xfs_rfsblock_t          *tot,
        xfs_extnum_t            *nex,
@@ -1648,7 +1668,7 @@ process_quota_inode(
        struct xfs_mount        *mp,
        xfs_ino_t               lino,
        struct xfs_dinode       *dino,
-       uint                    ino_type,
+       enum xr_ino_type        ino_type,
        struct blkmap           *blkmap)
 {
        xfs_fsblock_t           fsbno;
@@ -1935,7 +1955,7 @@ process_misc_ino_types(
        xfs_mount_t             *mp,
        struct xfs_dinode       *dino,
        xfs_ino_t               lino,
-       int                     type)
+       enum xr_ino_type        type)
 {
        /*
         * must also have a zero size
@@ -1982,7 +2002,10 @@ _("size of quota inode %" PRIu64 " != 0 (%" PRId64 " bytes)\n"), lino,
 }
 
 static int
-process_misc_ino_types_blocks(xfs_rfsblock_t totblocks, xfs_ino_t lino, int type)
+process_misc_ino_types_blocks(
+       xfs_rfsblock_t          totblocks,
+       xfs_ino_t               lino,
+       enum xr_ino_type        type)
 {
        /*
         * you can not enforce all misc types have zero data fork blocks
@@ -2092,7 +2115,7 @@ process_check_rt_inode(
        struct xfs_mount        *mp,
        struct xfs_dinode       *dinoc,
        xfs_ino_t               lino,
-       int                     *type,
+       enum xr_ino_type        *type,
        int                     *dirty,
        int                     expected_type,
        const char              *tag)
@@ -2130,7 +2153,7 @@ process_check_metadata_inodes(
        xfs_mount_t             *mp,
        struct xfs_dinode       *dinoc,
        xfs_ino_t               lino,
-       int                     *type,
+       enum xr_ino_type        *type,
        int                     *dirty)
 {
        if (lino == mp->m_sb.sb_rootino) {
@@ -2205,7 +2228,7 @@ process_check_inode_sizes(
        xfs_mount_t             *mp,
        struct xfs_dinode       *dino,
        xfs_ino_t               lino,
-       int                     type)
+       enum xr_ino_type        type)
 {
        xfs_fsize_t             size = be64_to_cpu(dino->di_size);
 
@@ -2466,7 +2489,7 @@ process_inode_data_fork(
        xfs_agnumber_t          agno,
        xfs_agino_t             ino,
        struct xfs_dinode       **dinop,
-       int                     type,
+       enum xr_ino_type        type,
        int                     *dirty,
        xfs_rfsblock_t          *totblocks,
        xfs_extnum_t            *nextents,
@@ -3029,10 +3052,10 @@ process_dinode_int(
        xfs_ino_t               *parent,        /* out -- parent if ino is a dir */
        struct xfs_buf          **ino_bpp)
 {
+       enum xr_ino_type        type = XR_INO_UNKNOWN;
        xfs_rfsblock_t          totblocks = 0;
        xfs_rfsblock_t          atotblocks = 0;
        int                     di_mode;
-       int                     type;
        int                     retval = 0;
        xfs_extnum_t            nextents;
        xfs_extnum_t            anextents;
@@ -3048,7 +3071,6 @@ process_dinode_int(
 
        *dirty = *isa_dir = 0;
        *used = is_used;
-       type = XR_INO_UNKNOWN;
 
        lino = XFS_AGINO_TO_INO(mp, agno, ino);
        di_mode = be16_to_cpu(dino->di_mode);
index 57019148f588c3fc14c4c7fd0f78fb100c52cf26..293988c9769d62fa3a41015e0978193088e17f70 100644 (file)
@@ -225,25 +225,6 @@ int                count_bcnt_extents(xfs_agnumber_t);
  * inode definitions
  */
 
-/* inode types */
-
-#define XR_INO_UNKNOWN 0               /* unknown */
-#define XR_INO_DIR     1               /* directory */
-#define XR_INO_RTDATA  2               /* realtime file */
-#define XR_INO_RTBITMAP        3               /* realtime bitmap inode */
-#define XR_INO_RTSUM   4               /* realtime summary inode */
-#define XR_INO_DATA    5               /* regular file */
-#define XR_INO_SYMLINK 6               /* symlink */
-#define XR_INO_CHRDEV  7               /* character device */
-#define XR_INO_BLKDEV  8               /* block device */
-#define XR_INO_SOCK    9               /* socket */
-#define XR_INO_FIFO    10              /* fifo */
-#define XR_INO_UQUOTA  12              /* user quota inode */
-#define XR_INO_GQUOTA  13              /* group quota inode */
-#define XR_INO_PQUOTA  14              /* project quota inode */
-#define XR_INO_RTRMAP  15              /* realtime rmap */
-#define XR_INO_RTREFC  16              /* realtime refcount */
-
 /* inode allocation tree */
 
 /*