1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _BCACHEFS_SNAPSHOT_FORMAT_H
3#define _BCACHEFS_SNAPSHOT_FORMAT_H
4
5struct 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
18LE32_BITMASK(BCH_SNAPSHOT_DELETED, struct bch_snapshot, flags, 0, 1)
19
20/* True if a subvolume points to this snapshot node: */
21LE32_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 */
30struct bch_snapshot_tree {
31 struct bch_val v;
32 __le32 master_subvol;
33 __le32 root_snapshot;
34};
35
36#endif /* _BCACHEFS_SNAPSHOT_FORMAT_H */
37

source code of linux/fs/bcachefs/snapshot_format.h