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