Commit 74b33393 authored by Kent Overstreet's avatar Kent Overstreet Committed by Kent Overstreet
Browse files

bcachefs: x-macro metadata version enum



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: default avatarKent Overstreet <kent.overstreet@gmail.com>
parent 3a306f3c
Loading
Loading
Loading
Loading
+16 −12
Original line number Diff line number Diff line
@@ -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,
#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)
+1 −1
Original line number Diff line number Diff line
@@ -1887,7 +1887,7 @@ void __bch2_btree_node_write(struct bch_fs *c, struct btree *b, unsigned flags)
	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);
+1 −1
Original line number Diff line number Diff line
@@ -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);

+6 −1
Original line number Diff line number Diff line
@@ -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()
+1 −0
Original line number Diff line number Diff line
@@ -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[];
Loading