@@ -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 }
};