bcachefs: Fix reflink path for snapshots
authorKent Overstreet <kent.overstreet@gmail.com>
Mon, 29 Nov 2021 21:36:50 +0000 (16:36 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:18 +0000 (17:09 -0400)
make_extent_indirect() was missing the
BTREE_UPDATE_INTERNAL_SNAPSHOT_NODE - it's updating the extent in the
original snapshot, not the curret one.

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
fs/bcachefs/reflink.c

index 8dcac78..c8d6d73 100644 (file)
@@ -184,7 +184,8 @@ static int bch2_make_extent_indirect(struct btree_trans *trans,
 
        r_p->v.idx = cpu_to_le64(bkey_start_offset(&r_v->k));
 
-       ret = bch2_trans_update(trans, extent_iter, &r_p->k_i, 0);
+       ret = bch2_trans_update(trans, extent_iter, &r_p->k_i,
+                               BTREE_UPDATE_INTERNAL_SNAPSHOT_NODE);
 err:
        c->reflink_hint = reflink_iter.pos.offset;
        bch2_trans_iter_exit(trans, &reflink_iter);