Skip to content

Commit 5fa4214

Browse files
author
Kent Overstreet
committed
bcachefs: Fix bogus verify_replicas_entry() assert
verify_replicas_entry() is only for newly created replicas entries - existing entries on disk may have unknown data types, and we have real verifiers for them. Reported-by: [email protected] Signed-off-by: Kent Overstreet <[email protected]>
1 parent 765b8cb commit 5fa4214

File tree

1 file changed

+2
-13
lines changed

1 file changed

+2
-13
lines changed

fs/bcachefs/replicas.c

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,14 +23,12 @@ static int bch2_memcmp(const void *l, const void *r, const void *priv)
2323
static void verify_replicas_entry(struct bch_replicas_entry_v1 *e)
2424
{
2525
#ifdef CONFIG_BCACHEFS_DEBUG
26-
unsigned i;
27-
2826
BUG_ON(e->data_type >= BCH_DATA_NR);
2927
BUG_ON(!e->nr_devs);
3028
BUG_ON(e->nr_required > 1 &&
3129
e->nr_required >= e->nr_devs);
3230

33-
for (i = 0; i + 1 < e->nr_devs; i++)
31+
for (unsigned i = 0; i + 1 < e->nr_devs; i++)
3432
BUG_ON(e->devs[i] >= e->devs[i + 1]);
3533
#endif
3634
}
@@ -192,24 +190,17 @@ cpu_replicas_add_entry(struct bch_fs *c,
192190
struct bch_replicas_cpu *old,
193191
struct bch_replicas_entry_v1 *new_entry)
194192
{
195-
unsigned i;
196193
struct bch_replicas_cpu new = {
197194
.nr = old->nr + 1,
198195
.entry_size = max_t(unsigned, old->entry_size,
199196
replicas_entry_bytes(new_entry)),
200197
};
201198

202-
for (i = 0; i < new_entry->nr_devs; i++)
203-
BUG_ON(!bch2_dev_exists(c, new_entry->devs[i]));
204-
205-
BUG_ON(!new_entry->data_type);
206-
verify_replicas_entry(new_entry);
207-
208199
new.entries = kcalloc(new.nr, new.entry_size, GFP_KERNEL);
209200
if (!new.entries)
210201
return new;
211202

212-
for (i = 0; i < old->nr; i++)
203+
for (unsigned i = 0; i < old->nr; i++)
213204
memcpy(cpu_replicas_entry(&new, i),
214205
cpu_replicas_entry(old, i),
215206
old->entry_size);
@@ -230,8 +221,6 @@ static inline int __replicas_entry_idx(struct bch_replicas_cpu *r,
230221
if (unlikely(entry_size > r->entry_size))
231222
return -1;
232223

233-
verify_replicas_entry(search);
234-
235224
#define entry_cmp(_l, _r) memcmp(_l, _r, entry_size)
236225
idx = eytzinger0_find(r->entries, r->nr, r->entry_size,
237226
entry_cmp, search);

0 commit comments

Comments
 (0)