bcachefs: bcachefs_metadata_version_major_minor
authorKent Overstreet <kent.overstreet@linux.dev>
Wed, 28 Jun 2023 02:09:35 +0000 (22:09 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:10:06 +0000 (17:10 -0400)
commitba8eeae8eee0aae03eb6be0372519b72057d312c
treecf0e95c6cdb1b8352d81fae07928df901e628334
parent30a8278a1e2f627b1f28ab521e40eecacb223efc
bcachefs: bcachefs_metadata_version_major_minor

This introduces major/minor versioning to the superblock version number.
Major version number changes indicate incompatible releases; we can move
forward to a new major version number, but not backwards. Minor version
numbers indicate compatible changes - these add features, but can still
be mounted and used by old versions.

With the recent patches that make it possible to roll out new btrees and
key types without breaking compatibility, we should be able to roll out
most new features without incompatible changes.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/bcachefs.h
fs/bcachefs/bcachefs_format.h
fs/bcachefs/btree_io.c
fs/bcachefs/journal_io.c
fs/bcachefs/recovery.c
fs/bcachefs/super-io.c
fs/bcachefs/super-io.h