X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libbcachefs%2Fec_types.h;h=e2b02a82de321bb4612e79eb1034ed997e7f3f0f;hb=ffa950ce1d59344ff621659b845416b8a526127f;hp=44c5d3821a3868066f45975c595637d3ecc38a90;hpb=47bd483d27ec13418978b24ec5951661d564ba35;p=bcachefs-tools-debian diff --git a/libbcachefs/ec_types.h b/libbcachefs/ec_types.h index 44c5d38..e2b02a8 100644 --- a/libbcachefs/ec_types.h +++ b/libbcachefs/ec_types.h @@ -1,27 +1,32 @@ +/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _BCACHEFS_EC_TYPES_H #define _BCACHEFS_EC_TYPES_H -#include - -#define EC_STRIPE_MAX 16 +#include "bcachefs_format.h" struct bch_replicas_padded { struct bch_replicas_entry e; - u8 pad[EC_STRIPE_MAX]; + u8 pad[BCH_BKEY_PTRS_MAX]; }; struct stripe { size_t heap_idx; - u16 sectors; u8 algorithm; + u8 nr_blocks; + u8 nr_redundant; + u8 blocks_nonempty; +}; + +struct gc_stripe { + u16 sectors; u8 nr_blocks; u8 nr_redundant; - u8 alive; - atomic_t blocks_nonempty; - atomic_t block_sectors[EC_STRIPE_MAX]; + unsigned alive:1; /* does a corresponding key exist in stripes btree? */ + u16 block_sectors[BCH_BKEY_PTRS_MAX]; + struct bch_extent_ptr ptrs[BCH_BKEY_PTRS_MAX]; struct bch_replicas_padded r; };