From: Kent Overstreet Date: Thu, 30 Nov 2023 07:11:15 +0000 (-0500) Subject: bcachefs: On missing backpointer to interior node, flush interior updates X-Git-Tag: v6.8-rc1~1^2~199 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=0f64a6daaa4852db735a2df754b37d187f5480d1;p=linux-2.6-block.git bcachefs: On missing backpointer to interior node, flush interior updates Signed-off-by: Kent Overstreet --- diff --git a/fs/bcachefs/backpointers.c b/fs/bcachefs/backpointers.c index 2fb96fa99f42..eb826457ff6b 100644 --- a/fs/bcachefs/backpointers.c +++ b/fs/bcachefs/backpointers.c @@ -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;