mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
bcachefs: Don't allocate stripes at POS_MIN
In the future, stripe index 0 will be a sentinal value. This patch doesn't disallow stripes at POS_MIN yet, leaving that for when we do the on disk format changes. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com> Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
6c7585b098
commit
33ccd7188e
2 changed files with 8 additions and 2 deletions
|
@ -178,6 +178,11 @@ static inline struct bpos bpos_min(struct bpos l, struct bpos r)
|
|||
return bkey_cmp(l, r) < 0 ? l : r;
|
||||
}
|
||||
|
||||
static inline struct bpos bpos_max(struct bpos l, struct bpos r)
|
||||
{
|
||||
return bkey_cmp(l, r) > 0 ? l : r;
|
||||
}
|
||||
|
||||
void bch2_bpos_swab(struct bpos *);
|
||||
void bch2_bkey_swab_key(const struct bkey_format *, struct bkey_packed *);
|
||||
|
||||
|
|
|
@ -690,7 +690,8 @@ static int ec_stripe_bkey_insert(struct bch_fs *c,
|
|||
struct btree_trans trans;
|
||||
struct btree_iter *iter;
|
||||
struct bkey_s_c k;
|
||||
struct bpos start_pos = POS(0, c->ec_stripe_hint);
|
||||
struct bpos min_pos = POS(0, 1);
|
||||
struct bpos start_pos = bpos_max(min_pos, POS(0, c->ec_stripe_hint));
|
||||
int ret;
|
||||
|
||||
bch2_trans_init(&trans, c, 0, 0);
|
||||
|
@ -701,7 +702,7 @@ static int ec_stripe_bkey_insert(struct bch_fs *c,
|
|||
BTREE_ITER_SLOTS|BTREE_ITER_INTENT, k, ret) {
|
||||
if (bkey_cmp(k.k->p, POS(0, U32_MAX)) > 0) {
|
||||
if (start_pos.offset) {
|
||||
start_pos = POS_MIN;
|
||||
start_pos = min_pos;
|
||||
bch2_btree_iter_set_pos(iter, start_pos);
|
||||
continue;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue