• Jan Schmidt's avatar
    Btrfs: bugfix: ignore the wrong key for indirect tree block backrefs · d5c88b73
    Jan Schmidt authored
    The key we store with a tree block backref is only a hint. It is set when
    the ref is created and can remain correct for a long time. As the tree is
    rebalanced, however, eventually the key no longer points to the correct
    destination.
    
    With this patch, we change find_parent_nodes to no longer add keys unless it
    knows for sure they're correct (e.g. because they're for an extent data
    backref). Then when we later encounter a backref ref with no parent and no
    key set, we grab the block and take the first key from the block itself.
    Signed-off-by: default avatarJan Schmidt <list.btrfs@jan-o-sch.net>
    d5c88b73
backref.c 39.6 KB