summaryrefslogtreecommitdiff
path: root/fs/bcachefs/ec.h
diff options
context:
space:
mode:
Diffstat (limited to 'fs/bcachefs/ec.h')
-rw-r--r--fs/bcachefs/ec.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/fs/bcachefs/ec.h b/fs/bcachefs/ec.h
index cc778da99030..85598448c7e1 100644
--- a/fs/bcachefs/ec.h
+++ b/fs/bcachefs/ec.h
@@ -191,6 +191,11 @@ enum ec_stripe_ref {
STRIPE_REF_NR
};
+struct ec_stripe_new_bucket {
+ struct hlist_node hash;
+ u64 dev_bucket;
+};
+
struct ec_stripe_new {
struct bch_fs *c;
struct ec_stripe_head *h;
@@ -217,6 +222,8 @@ struct ec_stripe_new {
open_bucket_idx_t blocks[BCH_BKEY_PTRS_MAX];
struct disk_reservation res;
+ struct ec_stripe_new_bucket buckets[BCH_BKEY_PTRS_MAX];
+
struct ec_stripe_buf new_stripe;
struct ec_stripe_buf existing_stripe;
};
@@ -248,6 +255,8 @@ struct ec_stripe_head {
int bch2_ec_read_extent(struct btree_trans *, struct bch_read_bio *, struct bkey_s_c);
+bool bch2_bucket_has_new_stripe(struct bch_fs *, u64);
+
void *bch2_writepoint_ec_buf(struct bch_fs *, struct write_point *);
void bch2_ec_bucket_cancel(struct bch_fs *, struct open_bucket *, int);