]> git.sesse.net Git - bcachefs-tools-debian/blob - libbcachefs/snapshot_format.h
Update bcachefs sources to 9a555a741e80 bcachefs: omit alignment attribute on big...
[bcachefs-tools-debian] / libbcachefs / snapshot_format.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _BCACHEFS_SNAPSHOT_FORMAT_H
3 #define _BCACHEFS_SNAPSHOT_FORMAT_H
4
5 struct bch_snapshot {
6         struct bch_val          v;
7         __le32                  flags;
8         __le32                  parent;
9         __le32                  children[2];
10         __le32                  subvol;
11         /* corresponds to a bch_snapshot_tree in BTREE_ID_snapshot_trees */
12         __le32                  tree;
13         __le32                  depth;
14         __le32                  skip[3];
15         bch_le128               btime;
16 };
17
18 LE32_BITMASK(BCH_SNAPSHOT_DELETED,      struct bch_snapshot, flags,  0,  1)
19
20 /* True if a subvolume points to this snapshot node: */
21 LE32_BITMASK(BCH_SNAPSHOT_SUBVOL,       struct bch_snapshot, flags,  1,  2)
22
23 /*
24  * Snapshot trees:
25  *
26  * The snapshot_trees btree gives us persistent indentifier for each tree of
27  * bch_snapshot nodes, and allow us to record and easily find the root/master
28  * subvolume that other snapshots were created from:
29  */
30 struct bch_snapshot_tree {
31         struct bch_val          v;
32         __le32                  master_subvol;
33         __le32                  root_snapshot;
34 };
35
36 #endif /* _BCACHEFS_SNAPSHOT_FORMAT_H */