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 */ 37