]> www.infradead.org Git - users/hch/xfsprogs.git/commitdiff
xfs: scrub the metadir path of rt rmap btree files
authorDarrick J. Wong <djwong@kernel.org>
Wed, 29 May 2024 04:12:54 +0000 (21:12 -0700)
committerChristoph Hellwig <hch@lst.de>
Sun, 11 Aug 2024 06:35:55 +0000 (08:35 +0200)
Add a new XFS_SCRUB_METAPATH subtype so that we can scrub the metadata
directory tree path to the rmap btree file for each rt group.

Signed-off-by: Darrick J. Wong <djwong@kernel.org>
libfrog/scrub.c
libxfs/xfs_fs.h
scrub/scrub.c

index e7fb8b890bc133b5dacf0f5142e6a95d38e7bb61..f4c6d7c38dbfd5e8c3c52cc46ce6dea598fb5379 100644 (file)
@@ -172,6 +172,16 @@ const struct xfrog_scrub_descr xfrog_metapaths[XFS_SCRUB_METAPATH_NR] = {
                .descr  = "metapath",
                .group  = XFROG_SCRUB_GROUP_NONE,
        },
+       [XFS_SCRUB_METAPATH_RTDIR] = {
+               .name   = "rtdir",
+               .descr  = "realtime group metadir",
+               .group  = XFROG_SCRUB_GROUP_FS,
+       },
+       [XFS_SCRUB_METAPATH_RTRMAPBT] = {
+               .name   = "rtrmapbt",
+               .descr  = "rmap btree file metadir path",
+               .group  = XFROG_SCRUB_GROUP_RTGROUP,
+       },
 };
 
 /* Invoke the scrub ioctl.  Returns zero or negative error code. */
index e6ec09fe3a9a47216652e9b6cbc1eb8e25c1dd8a..09f350b3556243c3769497cba1614105f55173ee 100644 (file)
@@ -823,9 +823,11 @@ struct xfs_scrub_vec_head {
  * path checking.
  */
 #define XFS_SCRUB_METAPATH_PROBE       (0)  /* do we have a metapath scrubber? */
+#define XFS_SCRUB_METAPATH_RTDIR       (1)  /* realtime metadir */
+#define XFS_SCRUB_METAPATH_RTRMAPBT    (2)  /* realtime reverse mapping */
 
 /* Number of metapath sm_ino values */
-#define XFS_SCRUB_METAPATH_NR          1
+#define XFS_SCRUB_METAPATH_NR          (3)
 
 /*
  * ioctl limits
index 855f4f8330b6c03c7b8bf2dbf55349bb92485d67..a2fd8d77d82be0479356279b34642b424f6a3f16 100644 (file)
@@ -66,6 +66,9 @@ format_metapath_descr(
                                (unsigned long long)vhead->svh_ino);
 
        sc = &xfrog_metapaths[vhead->svh_ino];
+       if (sc->group == XFROG_SCRUB_GROUP_RTGROUP)
+               return snprintf(buf, buflen, _("rtgroup %u %s"),
+                               vhead->svh_agno, _(sc->descr));
        return snprintf(buf, buflen, "%s", _(sc->descr));
 }