diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-06-17 11:31:26 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-06-17 12:38:43 -0400 |
commit | fc06a0ea5e552663e9e47de941fbc7e621d4ca46 (patch) | |
tree | 7760020d71afe32d3317049ad6f1b493dabe245c /libbcachefs/recovery.c | |
parent | ab83e348fb77f91b3a9c09ab87c9c357bdafb1d7 (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.c | 8 |
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; } |