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 }; 20 21 struct gc_stripe { 22 u16 sectors; 23 24 u8 nr_blocks; 25 u8 nr_redundant; 26 27 unsigned alive:1; /* does a corresponding key exist in stripes btree? */ 28 u16 block_sectors[BCH_BKEY_PTRS_MAX]; 29 struct bch_extent_ptr ptrs[BCH_BKEY_PTRS_MAX]; 30 31 struct bch_replicas_padded r; 32 }; 33 34 struct ec_stripe_heap_entry { 35 size_t idx; 36 unsigned blocks_nonempty; 37 }; 38 39 typedef DEFINE_MIN_HEAP(struct ec_stripe_heap_entry, ec_stripes_heap) ec_stripes_heap; 40 41 #endif /* _BCACHEFS_EC_TYPES_H */ 42
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.