bcachefs: x-macro metadata version enum
authorKent Overstreet <kent.overstreet@gmail.com>
Mon, 21 Mar 2022 03:34:11 +0000 (23:34 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:28 +0000 (17:09 -0400)
Now we've got strings for metadata versions - this changes
bch2_sb_to_text() and our mount log message to use it.

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
fs/bcachefs/bcachefs_format.h
fs/bcachefs/btree_io.c
fs/bcachefs/journal_io.c
fs/bcachefs/opts.c
fs/bcachefs/opts.h
fs/bcachefs/super-io.c
fs/bcachefs/super.c

index ace3df1..2c92430 100644 (file)
@@ -1279,19 +1279,23 @@ struct bch_sb_field_journal_seq_blacklist {
 #define BCH_JSET_VERSION_OLD                   2
 #define BCH_BSET_VERSION_OLD                   3
 
+#define BCH_METADATA_VERSIONS()                                \
+       x(bkey_renumber,                10)             \
+       x(inode_btree_change,           11)             \
+       x(snapshot,                     12)             \
+       x(inode_backpointers,           13)             \
+       x(btree_ptr_sectors_written,    14)             \
+       x(snapshot_2,                   15)             \
+       x(reflink_p_fix,                16)             \
+       x(subvol_dirent,                17)             \
+       x(inode_v2,                     18)
+
 enum bcachefs_metadata_version {
-       bcachefs_metadata_version_min                   = 9,
-       bcachefs_metadata_version_new_versioning        = 10,
-       bcachefs_metadata_version_bkey_renumber         = 10,
-       bcachefs_metadata_version_inode_btree_change    = 11,
-       bcachefs_metadata_version_snapshot              = 12,
-       bcachefs_metadata_version_inode_backpointers    = 13,
-       bcachefs_metadata_version_btree_ptr_sectors_written = 14,
-       bcachefs_metadata_version_snapshot_2            = 15,
-       bcachefs_metadata_version_reflink_p_fix         = 16,
-       bcachefs_metadata_version_subvol_dirent         = 17,
-       bcachefs_metadata_version_inode_v2              = 18,
-       bcachefs_metadata_version_max                   = 19,
+       bcachefs_metadata_version_min = 9,
+#define x(t, n)        bcachefs_metadata_version_##t = n,
+       BCH_METADATA_VERSIONS()
+#undef x
+       bcachefs_metadata_version_max
 };
 
 #define bcachefs_metadata_version_current      (bcachefs_metadata_version_max - 1)
index 887a1b1..c8f6e12 100644 (file)
@@ -1887,7 +1887,7 @@ do_write:
        BUG_ON(BSET_BIG_ENDIAN(i) != CPU_BIG_ENDIAN);
        BUG_ON(i->seq != b->data->keys.seq);
 
-       i->version = c->sb.version < bcachefs_metadata_version_new_versioning
+       i->version = c->sb.version < bcachefs_metadata_version_bkey_renumber
                ? cpu_to_le16(BCH_BSET_VERSION_OLD)
                : cpu_to_le16(c->sb.version);
        SET_BSET_OFFSET(i, b->written);
index e3b3d0b..ba43e57 100644 (file)
@@ -1574,7 +1574,7 @@ void bch2_journal_write(struct closure *cl)
        BUG_ON(vstruct_sectors(jset, c->block_bits) > w->sectors);
 
        jset->magic             = cpu_to_le64(jset_magic(c));
-       jset->version           = c->sb.version < bcachefs_metadata_version_new_versioning
+       jset->version           = c->sb.version < bcachefs_metadata_version_bkey_renumber
                ? cpu_to_le32(BCH_JSET_VERSION_OLD)
                : cpu_to_le32(c->sb.version);
 
index e78d3b7..ce5cb7e 100644 (file)
@@ -9,7 +9,12 @@
 #include "super-io.h"
 #include "util.h"
 
-#define x(t, n) #t,
+#define x(t, n) [n] = #t,
+
+const char * const bch2_metadata_versions[] = {
+       BCH_METADATA_VERSIONS()
+       NULL
+};
 
 const char * const bch2_error_actions[] = {
        BCH_ERROR_ACTIONS()
index fffe3e0..eeab4bb 100644 (file)
@@ -8,6 +8,7 @@
 #include <linux/sysfs.h>
 #include "bcachefs_format.h"
 
+extern const char * const bch2_metadata_versions[];
 extern const char * const bch2_error_actions[];
 extern const char * const bch2_sb_features[];
 extern const char * const bch2_sb_compat[];
index bb61a28..eaa5416 100644 (file)
@@ -263,7 +263,7 @@ static int bch2_sb_validate(struct bch_sb_handle *disk_sb, struct printbuf *out)
        int ret;
 
        version         = le16_to_cpu(sb->version);
-       version_min     = version >= bcachefs_metadata_version_new_versioning
+       version_min     = version >= bcachefs_metadata_version_bkey_renumber
                ? le16_to_cpu(sb->version_min)
                : version;
 
@@ -518,7 +518,7 @@ reread:
        }
 
        version         = le16_to_cpu(sb->sb->version);
-       version_min     = version >= bcachefs_metadata_version_new_versioning
+       version_min     = version >= bcachefs_metadata_version_bkey_renumber
                ? le16_to_cpu(sb->sb->version_min)
                : version;
 
@@ -1552,12 +1552,12 @@ void bch2_sb_to_text(struct printbuf *out, struct bch_sb *sb,
 
        pr_buf(out, "Version:");
        pr_tab(out);
-       pr_buf(out, "%u", le16_to_cpu(sb->version));
+       pr_buf(out, "%s", bch2_metadata_versions[le16_to_cpu(sb->version)]);
        pr_newline(out);
 
        pr_buf(out, "Oldest version on disk:");
        pr_tab(out);
-       pr_buf(out, "%u", le16_to_cpu(sb->version_min));
+       pr_buf(out, "%u", bch2_metadata_versions[le16_to_cpu(sb->version_min)]);
        pr_newline(out);
 
        pr_buf(out, "Created:");
index 56b0162..e4201ae 100644 (file)
@@ -897,7 +897,7 @@ static void print_mount_opts(struct bch_fs *c)
        if (!p.pos)
                pr_buf(&p, "(null)");
 
-       bch_info(c, "mounted with opts: %s", p.buf);
+       bch_info(c, "mounted version=%s opts=%s", bch2_metadata_versions[c->sb.version], p.buf);
        printbuf_exit(&p);
 }