Linux 6.13-rc4
[linux.git] / fs / bcachefs / snapshot_format.h
blobaabcd3a74cd95d6712f7f9f257cc8ee2caac4958
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _BCACHEFS_SNAPSHOT_FORMAT_H
3 #define _BCACHEFS_SNAPSHOT_FORMAT_H
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;
18 LE32_BITMASK(BCH_SNAPSHOT_DELETED, struct bch_snapshot, flags, 0, 1)
20 /* True if a subvolume points to this snapshot node: */
21 LE32_BITMASK(BCH_SNAPSHOT_SUBVOL, struct bch_snapshot, flags, 1, 2)
24 * Snapshot trees:
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:
30 struct bch_snapshot_tree {
31 struct bch_val v;
32 __le32 master_subvol;
33 __le32 root_snapshot;
36 #endif /* _BCACHEFS_SNAPSHOT_FORMAT_H */