• Kent Overstreet's avatar
    bcachefs: btree_path · 67e0dd8f
    Kent Overstreet authored
    This splits btree_iter into two components: btree_iter is now the
    externally visible componont, and it points to a btree_path which is now
    reference counted.
    
    This means we no longer have to clone iterators up front if they might
    be mutated - btree_path can be shared by multiple iterators, and cloned
    if an iterator would mutate a shared btree_path. This will help us use
    iterators more efficiently, as well as slimming down the main long lived
    state in btree_trans, and significantly cleans up the logic for iterator
    lifetimes.
    Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
    67e0dd8f
move.c 25 KB