]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/ec_types.h
Update bcachefs sources to e14d7c7195 bcachefs: Compression levels
[bcachefs-tools-debian] / libbcachefs / ec_types.h
index d04298106fa5422a3ce48b70994de381f9a5420f..e2b02a82de321bb4612e79eb1034ed997e7f3f0f 100644 (file)
@@ -1,22 +1,34 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #ifndef _BCACHEFS_EC_TYPES_H
 #define _BCACHEFS_EC_TYPES_H
 
-#include <linux/llist.h>
+#include "bcachefs_format.h"
 
-#define EC_STRIPE_MAX  16
+struct bch_replicas_padded {
+       struct bch_replicas_entry       e;
+       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;
 };
 
 struct ec_stripe_heap_entry {