37 lines · c
1/* SPDX-License-Identifier: GPL-2.0 */2#ifndef _BCACHEFS_SNAPSHOT_FORMAT_H3#define _BCACHEFS_SNAPSHOT_FORMAT_H4 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 of27 * bch_snapshot nodes, and allow us to record and easily find the root/master28 * 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