diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-01-21 02:41:06 -0500 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-01-21 13:27:10 -0500 |
commit | 8fed323b14040f42e5755bbb9bd778415634c4b6 (patch) | |
tree | 743f845201a457b4955eb278e4410cc2bfac99bf /fs/bcachefs/snapshot_format.h | |
parent | d455179fce10f0a7a76b84d1c8327988a93e3216 (diff) | |
download | linux-stable-8fed323b14040f42e5755bbb9bd778415634c4b6.tar.gz linux-stable-8fed323b14040f42e5755bbb9bd778415634c4b6.tar.bz2 linux-stable-8fed323b14040f42e5755bbb9bd778415634c4b6.zip |
bcachefs: snapshot_format.h
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs/snapshot_format.h')
-rw-r--r-- | fs/bcachefs/snapshot_format.h | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/fs/bcachefs/snapshot_format.h b/fs/bcachefs/snapshot_format.h new file mode 100644 index 000000000000..aabcd3a74cd9 --- /dev/null +++ b/fs/bcachefs/snapshot_format.h @@ -0,0 +1,36 @@ +/* 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 */ |