]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/commitdiff
xfs_db: show the metadata root directory when dumping superblocks
authorDarrick J. Wong <djwong@kernel.org>
Thu, 21 Nov 2024 00:24:16 +0000 (16:24 -0800)
committerDarrick J. Wong <djwong@kernel.org>
Tue, 24 Dec 2024 02:01:26 +0000 (18:01 -0800)
Show the metadirino field when appropriate.

Signed-off-by: "Darrick J. Wong" <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
db/sb.c

diff --git a/db/sb.c b/db/sb.c
index 4f115650e1283f07c9395d2a566fa32132b4cb9b..fa15b429ecbefab73e7ce4977ecb5008b885fd02 100644 (file)
--- 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 }
 };