• David Sterba's avatar
    btrfs: use page alloc/free wrappers for compression pages · 9ba965dc
    David Sterba authored
    This is a preparation for managing compression pages in a cache-like
    manner, instead of asking the allocator each time. The common allocation
    and free wrappers are introduced and are functionally equivalent to the
    current code.
    
    The freeing helpers need to be carefully placed where the last reference
    is dropped.  This is either after directly allocating (error handling)
    or when there are no other users of the pages (after copying the contents).
    
    It's safe to not use the helper and use put_page() that will handle the
    reference count. Not using the helper means there's lower number of
    pages that could be reused without passing them back to allocator.
    Reviewed-by: default avatarJosef Bacik <josef@toxicpanda.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    9ba965dc
compression.c 39 KB