summaryrefslogtreecommitdiff
path: root/libbcachefs/recovery.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2024-06-17 11:31:26 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2024-06-17 12:38:43 -0400
commitfc06a0ea5e552663e9e47de941fbc7e621d4ca46 (patch)
tree7760020d71afe32d3317049ad6f1b493dabe245c /libbcachefs/recovery.c
parentab83e348fb77f91b3a9c09ab87c9c357bdafb1d7 (diff)
Update bcachefs sources to c56e1ec97dfd bcachefs: Fix bch2_sb_downgrade_update()
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'libbcachefs/recovery.c')
-rw-r--r--libbcachefs/recovery.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/libbcachefs/recovery.c b/libbcachefs/recovery.c
index 3ebffd04..097ef7d1 100644
--- a/libbcachefs/recovery.c
+++ b/libbcachefs/recovery.c
@@ -398,6 +398,12 @@ static int journal_replay_entry_early(struct bch_fs *c,
case BCH_JSET_ENTRY_btree_root: {
struct btree_root *r;
+ if (fsck_err_on(entry->btree_id >= BTREE_ID_NR_MAX,
+ c, invalid_btree_id,
+ "invalid btree id %u (max %u)",
+ entry->btree_id, BTREE_ID_NR_MAX))
+ return 0;
+
while (entry->btree_id >= c->btree_roots_extra.nr + BTREE_ID_NR) {
ret = darray_push(&c->btree_roots_extra, (struct btree_root) { NULL });
if (ret)
@@ -452,7 +458,7 @@ static int journal_replay_entry_early(struct bch_fs *c,
atomic64_set(&c->io_clock[clock->rw].now, le64_to_cpu(clock->time));
}
}
-
+fsck_err:
return ret;
}