On 13.02.19 г. 17:53 ч., Nikolay Borisov wrote:
> This series aims to streamline the logic in cow_file_range_async which is
> invoked if extents have to be compressed. The main change is that the logic
> of
> the loop in the function is now centered around the idea of chunks (in case
> compression is enabled). So it's obvious that we will submit as many chunks
> as
> necessary. The 2nd improvement is to eliminate the BUG_ON that is dependent
> on the
> return value of kmalloc. Now, an array of struct async_cow is allocated,
> preceded
> by an atomic_t, shared by all chunks. This allows to bail out before
> submitting
> any io whatsoever and mark the page as errored out.
>
> Rest of the patches are pure quality-of-live improvements - simplifying
> function
> signature, removing unused code/redundant data members.
>
> Needless to say this has survived full xfstest run.
>
> Nikolay Borisov (4):
> btrfs: Refactor cow_file_range_async
> btrfs: Remove fs_info from struct async_cow
> btrfs: Make compress_file_range only struct async_cow
> btrfs: Replace clear_extent_bit with unlock_extent
>
> fs/btrfs/inode.c | 105 +++++++++++++++++++++++++++--------------------
> 1 file changed, 60 insertions(+), 45 deletions(-)
>
Disregard this, I will resend.