• Qu Wenruo's avatar
    btrfs: reloc: make reloc root search-specific for relocation backref cache · 2433bea5
    Qu Wenruo authored
    find_reloc_root() searches reloc_control::reloc_root_tree to find the
    reloc root.  This behavior is only useful for relocation backref cache.
    
    For the incoming more generic purpose backref cache, we don't care
    about who owns the reloc root, but only care if it's a reloc root.
    
    So this patch makes the following modifications to make the reloc root
    search more specific to relocation backref:
    
    - Add backref_node::is_reloc_root
      This will be an extra indicator for generic purposed backref cache.
      User doesn't need to read root key from backref_node::root to
      determine if it's a reloc root.
      Also for reloc tree root, it's useless and will be queued to useless
      list.
    
    - Add backref_cache::is_reloc
      This will allow backref cache code to do different behavior for
      generic purpose backref cache and relocation backref cache.
    
    - Pass fs_info to find_reloc_root()
    
    - Export find_reloc_root()
      So backref.c can utilize this function.
    Reviewed-by: default avatarJosef Bacik <josef@toxicpanda.com>
    Signed-off-by: default avatarQu Wenruo <wqu@suse.com>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    2433bea5
ctree.h 117 KB