[PATCH 13/41] xfs_db: show the metadata root directory when dumping superblocks

Darrick J. Wong
2024-12-06T23:43:02Z

From: Darrick J. Wong <djwong@kernel.org>

Show the metadirino field when appropriate.

Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
---
db/sb.c | 14 ++++++++++++++
1 file changed, 14 insertions(+)

diff --git a/db/sb.c b/db/sb.c
index 4f115650e1283f..fa15b429ecbefa 100644
--- a/db/sb.c
+++ b/db/sb.c
@@ -50,6 +50,18 @@ sb_init(void)
add_command(&version_cmd);
}

+/*
+ * Counts superblock fields that only exist when the metadata directory feature
+ * is enabled.
+ */
+static int
+metadirfld_count(
+ void *obj,
+ int startoff)
+{
+ return xfs_has_metadir(mp) ? 1 : 0;
+}
+
#define OFF(f) bitize(offsetof(struct xfs_dsb, sb_ ## f))
#define SZC(f) szcount(struct xfs_dsb, sb_ ## f)
const field_t sb_flds[] = {
@@ -113,6 +125,8 @@ const field_t sb_flds[] = {
{ "pquotino", FLDT_INO, OI(OFF(pquotino)), C1, 0, TYP_INODE },
{ "lsn", FLDT_UINT64X, OI(OFF(lsn)), C1, 0, TYP_NONE },
{ "meta_uuid", FLDT_UUID, OI(OFF(meta_uuid)), C1, 0, TYP_NONE },
+ { "metadirino", FLDT_INO, OI(OFF(metadirino)), metadirfld_count,
+ FLD_COUNT, TYP_INODE },
{ NULL }
};