]> git.sesse.net Git - bcachefs-tools-debian/blob - libbcachefs/super_types.h
Update bcachefs sources to b12d1535f3 bcachefs: fix bounds checks in bch2_bio_map()
[bcachefs-tools-debian] / libbcachefs / super_types.h
1 #ifndef _BCACHEFS_SUPER_TYPES_H
2 #define _BCACHEFS_SUPER_TYPES_H
3
4 struct bch_sb_handle {
5         struct bch_sb           *sb;
6         struct block_device     *bdev;
7         struct bio              *bio;
8         unsigned                page_order;
9         fmode_t                 mode;
10         unsigned                have_layout:1;
11         unsigned                have_bio:1;
12         unsigned                fs_sb:1;
13 };
14
15 struct bch_devs_mask {
16         unsigned long d[BITS_TO_LONGS(BCH_SB_MEMBERS_MAX)];
17 };
18
19 struct bch_devs_list {
20         u8                      nr;
21         u8                      devs[BCH_REPLICAS_MAX + 1];
22 };
23
24 struct bch_member_cpu {
25         u64                     nbuckets;       /* device size */
26         u16                     first_bucket;   /* index of first bucket used */
27         u16                     bucket_size;    /* sectors */
28         u16                     group;
29         u8                      state;
30         u8                      replacement;
31         u8                      discard;
32         u8                      data_allowed;
33         u8                      durability;
34         u8                      valid;
35 };
36
37 struct bch_disk_group_cpu {
38         bool                            deleted;
39         u16                             parent;
40         struct bch_devs_mask            devs;
41 };
42
43 struct bch_disk_groups_cpu {
44         struct rcu_head                 rcu;
45         unsigned                        nr;
46         struct bch_disk_group_cpu       entries[];
47 };
48
49 #endif /* _BCACHEFS_SUPER_TYPES_H */