]> Git Repo - J-linux.git/blob - fs/bcachefs/ec_types.h
Merge tag 'vfs-6.13-rc7.fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs
[J-linux.git] / fs / bcachefs / ec_types.h
1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _BCACHEFS_EC_TYPES_H
3 #define _BCACHEFS_EC_TYPES_H
4
5 #include "bcachefs_format.h"
6
7 struct bch_replicas_padded {
8         struct bch_replicas_entry_v1    e;
9         u8                              pad[BCH_BKEY_PTRS_MAX];
10 };
11
12 struct stripe {
13         size_t                  heap_idx;
14         u16                     sectors;
15         u8                      algorithm;
16         u8                      nr_blocks;
17         u8                      nr_redundant;
18         u8                      blocks_nonempty;
19         u8                      disk_label;
20 };
21
22 struct gc_stripe {
23         u16                     sectors;
24
25         u8                      nr_blocks;
26         u8                      nr_redundant;
27
28         unsigned                alive:1; /* does a corresponding key exist in stripes btree? */
29         u16                     block_sectors[BCH_BKEY_PTRS_MAX];
30         struct bch_extent_ptr   ptrs[BCH_BKEY_PTRS_MAX];
31
32         struct bch_replicas_padded r;
33 };
34
35 struct ec_stripe_heap_entry {
36         size_t                  idx;
37         unsigned                blocks_nonempty;
38 };
39
40 typedef DEFINE_MIN_HEAP(struct ec_stripe_heap_entry, ec_stripes_heap) ec_stripes_heap;
41
42 #endif /* _BCACHEFS_EC_TYPES_H */
This page took 0.028393 seconds and 4 git commands to generate.