Here is v2 of the compressed path cleanups. The main objective was to remove 
the BUG_ON in cow_file_range_async. This has been achieved by pre-allocating 
an array large enough to hold all async_cow structs for the given range. In 
case this allocation fail we just unlock the range and error out the pages. 


Changes since v1: 

 * Fixed error handling in patch 1 - now properly cleanup on failure. 
 * Fixed subject of patch 3 
 * Added patches 4/5 as minor cleanups to the code. 

Nikolay Borisov (6):
  btrfs: Refactor cow_file_range_async
  btrfs: Remove fs_info from struct async_cow
  btrfs: Make compress_file_range take only struct async_cow
  btrfs: Replace clear_extent_bit with unlock_extent
  btrfs: Set iotree only once in submit_compressed_extents
  btrfs: Factor out common extent locking code in
    submit_compressed_extents

 fs/btrfs/inode.c | 129 +++++++++++++++++++++++++++--------------------
 1 file changed, 73 insertions(+), 56 deletions(-)

-- 
2.17.1

Reply via email to