]> git.sesse.net Git - bcachefs-tools-debian/blobdiff - libbcachefs/ec_types.h
Update bcachefs sources to 0342eebf85 bcachefs: Improve the backpointer to missing...
[bcachefs-tools-debian] / libbcachefs / ec_types.h
index 44c5d3821a3868066f45975c595637d3ecc38a90..e2b02a82de321bb4612e79eb1034ed997e7f3f0f 100644 (file)
@@ -1,27 +1,32 @@
+/* SPDX-License-Identifier: GPL-2.0 */
 #ifndef _BCACHEFS_EC_TYPES_H
 #define _BCACHEFS_EC_TYPES_H
 
-#include <linux/llist.h>
-
-#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;
 };