diff options
Diffstat (limited to 'fs/bcachefs/ec.h')
-rw-r--r-- | fs/bcachefs/ec.h | 9 |
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); |