]> git.sesse.net Git - bcachefs-tools-debian/blob - libbcachefs/subvolume_format.h
Update bcachefs sources to bee7b5a4fa21 bcachefs: Pin btree cache in ram for random...
[bcachefs-tools-debian] / libbcachefs / subvolume_format.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _BCACHEFS_SUBVOLUME_FORMAT_H
3 #define _BCACHEFS_SUBVOLUME_FORMAT_H
4
5 #define SUBVOL_POS_MIN          POS(0, 1)
6 #define SUBVOL_POS_MAX          POS(0, S32_MAX)
7 #define BCACHEFS_ROOT_SUBVOL    1
8
9 struct bch_subvolume {
10         struct bch_val          v;
11         __le32                  flags;
12         __le32                  snapshot;
13         __le64                  inode;
14         /*
15          * Snapshot subvolumes form a tree, separate from the snapshot nodes
16          * tree - if this subvolume is a snapshot, this is the ID of the
17          * subvolume it was created from:
18          *
19          * This is _not_ necessarily the subvolume of the directory containing
20          * this subvolume:
21          */
22         __le32                  creation_parent;
23         __le32                  fs_path_parent;
24         bch_le128               otime;
25 };
26
27 LE32_BITMASK(BCH_SUBVOLUME_RO,          struct bch_subvolume, flags,  0,  1)
28 /*
29  * We need to know whether a subvolume is a snapshot so we can know whether we
30  * can delete it (or whether it should just be rm -rf'd)
31  */
32 LE32_BITMASK(BCH_SUBVOLUME_SNAP,        struct bch_subvolume, flags,  1,  2)
33 LE32_BITMASK(BCH_SUBVOLUME_UNLINKED,    struct bch_subvolume, flags,  2,  3)
34
35 #endif /* _BCACHEFS_SUBVOLUME_FORMAT_H */