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.
