]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/bcachefs_format.h
Update bcachefs sources to 39a84c99af2d bcachefs: Clamp replicas_required to replicas
[bcachefs-tools-debian] / libbcachefs / bcachefs_format.h
index 0668b682a21ca8e035cae73f73e6774c99eaeb94..20604e2708d6ad76ce42dedf2fc53de2b00f7125 100644 (file)
@@ -840,7 +840,9 @@ struct bch_sb_field_downgrade {
        x(snapshot_skiplists,           BCH_VERSION(1,  1))             \
        x(deleted_inodes,               BCH_VERSION(1,  2))             \
        x(rebalance_work,               BCH_VERSION(1,  3))             \
-       x(member_seq,                   BCH_VERSION(1,  4))
+       x(member_seq,                   BCH_VERSION(1,  4))             \
+       x(subvolume_fs_parent,          BCH_VERSION(1,  5))             \
+       x(btree_subvolume_children,     BCH_VERSION(1,  6))
 
 enum bcachefs_metadata_version {
        bcachefs_metadata_version_min = 9,
@@ -1275,7 +1277,8 @@ static inline __u64 __bset_magic(struct bch_sb *sb)
        x(dev_usage,            8)              \
        x(log,                  9)              \
        x(overwrite,            10)             \
-       x(write_buffer_keys,    11)
+       x(write_buffer_keys,    11)             \
+       x(datetime,             12)
 
 enum {
 #define x(f, nr)       BCH_JSET_ENTRY_##f      = nr,
@@ -1376,6 +1379,11 @@ struct jset_entry_log {
        u8                      d[];
 } __packed __aligned(8);
 
+struct jset_entry_datetime {
+       struct jset_entry       entry;
+       __le64                  seconds;
+} __packed __aligned(8);
+
 /*
  * On disk format for a journal entry:
  * seq is monotonically increasing; every journal entry has its own unique
@@ -1418,14 +1426,17 @@ LE32_BITMASK(JSET_NO_FLUSH,     struct jset, flags, 5, 6);
 /* Btree: */
 
 enum btree_id_flags {
-       BTREE_ID_EXTENTS        = BIT(0),
-       BTREE_ID_SNAPSHOTS      = BIT(1),
-       BTREE_ID_SNAPSHOT_FIELD = BIT(2),
-       BTREE_ID_DATA           = BIT(3),
+       /* key size field is nonzero, btree iterators handle as ranges  */
+       BTREE_ID_EXTENTS                = BIT(0),
+       BTREE_ID_SNAPSHOTS              = BIT(1),
+       BTREE_ID_SNAPSHOT_FIELD         = BIT(2),
+       BTREE_ID_SNAPSHOTS_UNREFFED     = BIT(3),
+       BTREE_ID_DATA                   = BIT(3),
 };
 
 #define BCH_BTREE_IDS()                                                                \
-       x(extents,              0,      BTREE_ID_EXTENTS|BTREE_ID_SNAPSHOTS|BTREE_ID_DATA,\
+       x(extents,              0,      BTREE_ID_EXTENTS|BTREE_ID_SNAPSHOTS|    \
+                                       BTREE_ID_SNAPSHOTS_UNREFFED|BTREE_ID_DATA,\
          BIT_ULL(KEY_TYPE_whiteout)|                                           \
          BIT_ULL(KEY_TYPE_error)|                                              \
          BIT_ULL(KEY_TYPE_cookie)|                                             \
@@ -1443,7 +1454,7 @@ enum btree_id_flags {
          BIT_ULL(KEY_TYPE_whiteout)|                                           \
          BIT_ULL(KEY_TYPE_hash_whiteout)|                                      \
          BIT_ULL(KEY_TYPE_dirent))                                             \
-       x(xattrs,               3,      BTREE_ID_SNAPSHOTS,                     \
+       x(xattrs,               3,      BTREE_ID_SNAPSHOTS|BTREE_ID_SNAPSHOTS_UNREFFED,\
          BIT_ULL(KEY_TYPE_whiteout)|                                           \
          BIT_ULL(KEY_TYPE_cookie)|                                             \
          BIT_ULL(KEY_TYPE_hash_whiteout)|                                      \
@@ -1482,7 +1493,9 @@ enum btree_id_flags {
          BIT_ULL(KEY_TYPE_logged_op_truncate)|                                 \
          BIT_ULL(KEY_TYPE_logged_op_finsert))                                  \
        x(rebalance_work,       18,     BTREE_ID_SNAPSHOT_FIELD,                \
-         BIT_ULL(KEY_TYPE_set)|BIT_ULL(KEY_TYPE_cookie))
+         BIT_ULL(KEY_TYPE_set)|BIT_ULL(KEY_TYPE_cookie))                       \
+       x(subvolume_children,   19,     0,                                      \
+         BIT_ULL(KEY_TYPE_set))
 
 enum btree_id {
 #define x(name, nr, ...) BTREE_ID_##name = nr,