xfs: report health of inode link counts
authorDarrick J. Wong <djwong@kernel.org>
Thu, 22 Feb 2024 20:30:58 +0000 (12:30 -0800)
committerDarrick J. Wong <djwong@kernel.org>
Thu, 22 Feb 2024 20:30:58 +0000 (12:30 -0800)
Report on the health of the inode link counts.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
fs/xfs/libxfs/xfs_fs.h
fs/xfs/libxfs/xfs_health.h
fs/xfs/xfs_health.c

index 07acbed9235c57c5852210905bdc8898186e00d7..f10d0aa0e337f3fa79c56bbb12b95fb56afdeebe 100644 (file)
@@ -196,6 +196,7 @@ struct xfs_fsop_geom {
 #define XFS_FSOP_GEOM_SICK_RT_BITMAP   (1 << 4)  /* realtime bitmap */
 #define XFS_FSOP_GEOM_SICK_RT_SUMMARY  (1 << 5)  /* realtime summary */
 #define XFS_FSOP_GEOM_SICK_QUOTACHECK  (1 << 6)  /* quota counts */
+#define XFS_FSOP_GEOM_SICK_NLINKS      (1 << 7)  /* inode link counts */
 
 /* Output for XFS_FS_COUNTS */
 typedef struct xfs_fsop_counts {
index 5626e53b3f0feedb55cc860634cce856758d52e7..2bfe2dc404a19335e611d2c4db954be67a2bb413 100644 (file)
@@ -42,6 +42,7 @@ struct xfs_fsop_geom;
 #define XFS_SICK_FS_GQUOTA     (1 << 2)  /* group quota */
 #define XFS_SICK_FS_PQUOTA     (1 << 3)  /* project quota */
 #define XFS_SICK_FS_QUOTACHECK (1 << 4)  /* quota counts */
+#define XFS_SICK_FS_NLINKS     (1 << 5)  /* inode link counts */
 
 /* Observable health issues for realtime volume metadata. */
 #define XFS_SICK_RT_BITMAP     (1 << 0)  /* realtime bitmap */
@@ -79,7 +80,8 @@ struct xfs_fsop_geom;
                                 XFS_SICK_FS_UQUOTA | \
                                 XFS_SICK_FS_GQUOTA | \
                                 XFS_SICK_FS_PQUOTA | \
-                                XFS_SICK_FS_QUOTACHECK)
+                                XFS_SICK_FS_QUOTACHECK | \
+                                XFS_SICK_FS_NLINKS)
 
 #define XFS_SICK_RT_PRIMARY    (XFS_SICK_RT_BITMAP | \
                                 XFS_SICK_RT_SUMMARY)
index ef07af9f753d334d01aa92efc69f8ad4e8f64e89..111c27a6b1079a5e77372daa953b462d536a1d58 100644 (file)
@@ -281,6 +281,7 @@ static const struct ioctl_sick_map fs_map[] = {
        { XFS_SICK_FS_GQUOTA,   XFS_FSOP_GEOM_SICK_GQUOTA },
        { XFS_SICK_FS_PQUOTA,   XFS_FSOP_GEOM_SICK_PQUOTA },
        { XFS_SICK_FS_QUOTACHECK, XFS_FSOP_GEOM_SICK_QUOTACHECK },
+       { XFS_SICK_FS_NLINKS,   XFS_FSOP_GEOM_SICK_NLINKS },
        { 0, 0 },
 };