• F
    btrfs: move ulists to data extent sharedness check context · 84a7949d
    Filipe Manana 提交于
    When calling btrfs_is_data_extent_shared() we pass two ulists that were
    allocated by the caller. This is because the single caller, fiemap, calls
    btrfs_is_data_extent_shared() multiple times and the ulists can be reused,
    instead of allocating new ones before each call and freeing them after
    each call.
    
    Now that we have a context structure/object that we pass to
    btrfs_is_data_extent_shared(), we can move those ulists to it, and hide
    their allocation and the context's allocation in a helper function, as
    well as the freeing of the ulists and the context object. This allows to
    reduce the number of parameters passed to btrfs_is_data_extent_shared(),
    the need to pass the ulists from extent_fiemap() to fiemap_process_hole()
    and having the caller deal with allocating and releasing the ulists.
    
    Also rename one of the ulists from 'tmp' / 'tmp_ulist' to 'refs', since
    that's a much better name as it reflects what the list is used for (and
    matching the argument name for find_parent_nodes()).
    Signed-off-by: NFilipe Manana <fdmanana@suse.com>
    Signed-off-by: NDavid Sterba <dsterba@suse.com>
    84a7949d
backref.h 11.1 KB