| /* SPDX-License-Identifier: GPL-2.0 */ |
| #ifndef _BCACHEFS_SNAPSHOT_FORMAT_H |
| #define _BCACHEFS_SNAPSHOT_FORMAT_H |
| |
| struct bch_snapshot { |
| struct bch_val v; |
| __le32 flags; |
| __le32 parent; |
| __le32 children[2]; |
| __le32 subvol; |
| /* corresponds to a bch_snapshot_tree in BTREE_ID_snapshot_trees */ |
| __le32 tree; |
| __le32 depth; |
| __le32 skip[3]; |
| bch_le128 btime; |
| }; |
| |
| LE32_BITMASK(BCH_SNAPSHOT_DELETED, struct bch_snapshot, flags, 0, 1) |
| |
| /* True if a subvolume points to this snapshot node: */ |
| LE32_BITMASK(BCH_SNAPSHOT_SUBVOL, struct bch_snapshot, flags, 1, 2) |
| |
| /* |
| * Snapshot trees: |
| * |
| * The snapshot_trees btree gives us persistent indentifier for each tree of |
| * bch_snapshot nodes, and allow us to record and easily find the root/master |
| * subvolume that other snapshots were created from: |
| */ |
| struct bch_snapshot_tree { |
| struct bch_val v; |
| __le32 master_subvol; |
| __le32 root_snapshot; |
| }; |
| |
| #endif /* _BCACHEFS_SNAPSHOT_FORMAT_H */ |