bcachefs: On missing backpointer to interior node, flush interior updates

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
Kent Overstreet 2023-11-30 02:11:15 -05:00
parent 21e07cc966
commit 0f64a6daaa

View File

@ -441,6 +441,11 @@ static int check_bp_exists(struct btree_trans *trans,
memcmp(bkey_s_c_to_backpointer(bp_k).v, &bp, sizeof(bp))) {
if (last_flushed->level != bp.level ||
!bpos_eq(last_flushed->pos, orig_k.k->p)) {
if (bp.level) {
bch2_trans_unlock(trans);
bch2_btree_interior_updates_flush(c);
}
ret = bch2_btree_write_buffer_flush_sync(trans);
if (ret)
goto err;