]> Git Repo - linux.git/blob - fs/bcachefs/subvolume_types.h
Linux 6.14-rc3
[linux.git] / fs / bcachefs / subvolume_types.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _BCACHEFS_SUBVOLUME_TYPES_H
3 #define _BCACHEFS_SUBVOLUME_TYPES_H
4
5 #include "darray.h"
6
7 typedef DARRAY(u32) snapshot_id_list;
8
9 #define IS_ANCESTOR_BITMAP      128
10
11 struct snapshot_t {
12         bool                    live;
13         u32                     parent;
14         u32                     skip[3];
15         u32                     depth;
16         u32                     children[2];
17         u32                     subvol; /* Nonzero only if a subvolume points to this node: */
18         u32                     tree;
19         unsigned long           is_ancestor[BITS_TO_LONGS(IS_ANCESTOR_BITMAP)];
20 };
21
22 struct snapshot_table {
23         struct rcu_head         rcu;
24         size_t                  nr;
25 #ifndef RUST_BINDGEN
26         DECLARE_FLEX_ARRAY(struct snapshot_t, s);
27 #else
28         struct snapshot_t       s[0];
29 #endif
30 };
31
32 typedef struct {
33         /* we can't have padding in this struct: */
34         u64             subvol;
35         u64             inum;
36 } subvol_inum;
37
38 #endif /* _BCACHEFS_SUBVOLUME_TYPES_H */
This page took 0.032344 seconds and 4 git commands to generate.